Back to Blog

~$1.35M Kayıp: BarnBridge, DeFiTuna | BlockSec Haftalık

Code Auditing
July 22, 2026
9 min read
Key Insights

Geçen hafta (2026/07/13 - 2026/07/19), Ethereum ve Solana üzerinde toplam yaklaşık 1,35 milyon dolar kayba yol açan aşağıdaki 2 önemli güvenlik olayı öne çıkmaktadır.

Tarih Olay Tür Tahmini Kayıp
2026/07/15 BarnBridge Hatalı Yönetişim ~$776K
2026/07/16 DeFiTuna Kusurlu Sağlık Kontrolü ~$570K
  • DeFiTuna: Pozisyon sağlık kontrolü, sıfır olmayan bir borç varken sıfır varlık değerini sağlıklı olarak kabul etti; saldırgan bu açığı tetiklemek ve kötü borç pozisyonu oluşturmak için kontrollü takas yönlendirmesini ve ayrı bir düşük likidite havuzunu kullandı.
  • BarnBridge: Kullanım dışı bırakılmış bir yönetişim sistemi, kritik protokol yapılandırmasını değiştirmek ve kullanıcı onaylı fonları boşaltmak amacıyla istismar edildi.

Web3 için En İyi Güvenlik Denetçisi

Lansmanöncesinde tasarımı, kodu ve iş mantığını doğrulayın

Haftanın Öne Çıkanı: DeFiTuna

Temel neden, pozisyon sağlık kontrolündeki kusurlu sıfır-değer dalıydı: sıfır varlık değerine ve yaklaşık 570.000 dolarlık ödenmemiş borca sahip bir pozisyon sağlıklı olarak kabul edildi. Saldırgan bu açığı takası ayrı bir düşük likidite havuzu üzerinden yönlendirerek tetikledi; ancak sağlık kontrolü, ortaya çıkan kötü borcu engellemesi gereken nihai denetim mekanizmasıydı.

16 Temmuz 2026'da, Solana üzerinde kaldıraçlı spot pozisyonları destekleyen bir borç verme protokolü olan DeFiTuna, USDC cinsinden yaklaşık 570.000 dolar tutarında istismar edildi [1]. Temel neden, varlık değeri sıfır ve borç sıfırdan büyük olduğunda bile pozisyonu sağlıklı olarak kabul eden, pozisyon sağlık kontrolündeki kusurlu sıfır-değer dalıydı. Saldırgan sıfır teminatla kaldıraçlı bir pozisyon açtı, protokol kasasından USDC ödünç aldı ve takası saldırgan tarafından kontrol edilen düşük likidite havuzu üzerinden yönlendirerek pozisyonun hedef tokenden ihmal edilebilir miktarda almasına neden oldu. Hassasiyet kesmesi ardından pozisyon değerini sıfıra yuvarladı ve sağlık kontrolü pozisyonu sağlıklı olarak kabul ederek yaklaşık 570.000 dolarlık kötü borç oluşturdu.

Arka Plan

DeFiTuna, marjin ticaretini destekleyen Solana üzerinde bir borç verme protokolüdür. Kullanıcı, bir tokeni teminat olarak sunarak, bir protokol kasasından borç alarak ve ödünç alınan fonları hedef bir tokene takas ederek spot bir pozisyon açabilir. Ortaya çıkan pozisyon daha sonra sağlıklı olup olmadığını belirlemek için borçla karşılaştırılır.

Bir DeFiTuna spot piyasasında, iki havuz tokenine token A ve token B adı verilir. Saldırıya uğrayan piyasada token A TUNA, token B ise USDC idi.

  • USDC, teminat tokeniydi (collateral_token). Kullanıcı USDC'yi marjin olarak yatırır, DeFiTuna kasasından ek USDC borç alır ve ödünç alınan USDC daha sonra TUNA'ya takas edilir.
  • TUNA, pozisyon tokeniydi (position_token); takasın ardından pozisyonun tuttuğu varlıktı. Net etki, USDC borçla finanse edilen TUNA üzerinde kaldıraçlı bir uzun pozisyondur.
  • Kasa hesapları, borç veren likiditesini tutar ve ödünç alınan fonların kaynağıdır.
  • AMM havuzu, TUNA/USDC çifti için piyasa likiditesi ve fiyat bağlamı sağlar.

DeFiTuna, pozisyon takaslarını bir Solana takas toplayıcısı olan Jupiter üzerinden yönlendirir. Takas yolu, DeFiTuna talimatına Jupiter rota verisi ve rota hesapları olarak sağlanır. Çağıran bu hesapları sağladığından, takasın hangi havuzu kullandığını çağıran kontrol eder. Takası gerçekleştirmeden önce DeFiTuna, normal piyasa havuzu fiyatını bir oracle ile karşılaştırarak takas öncesi bir fiyat kontrolü yapar.

Güvenlik Açığı Analizi

Hatalı program DeFiTuna'dır (tuna4u...nogD).

Temel neden, pozisyon sağlık kontrolündeki kusurlu sıfır-değer dalıydı. Bir takasın ardından DeFiTuna, tutulan TUNA'yı USDC cinsine çevirerek pozisyonu değerlendirdi. TUNA bakiyesi sıfıra yuvarlanacak kadar küçükse total alanı 0 oluyordu. Sağlık kontrolü mantığı, debt == 0 şartını aramaksızın total == 0 durumunu sağlıklı olarak değerlendiriyordu.

Saldırı Analizi

İki tasarım özelliği, saldırgana ödünç alınan fonların nereye yönlendirileceği üzerinde kontrol sağladı. Birincisi, DeFiTuna, çağıran tarafından sağlanan Jupiter RouteV2 verilerini, oracle fiyatından ve ödünç alınan miktardan bağımsız olarak kendi kabul edilebilir minimum TUNA çıktısını türetmeden kabul etti. İkincisi, takas öncesi oracle kontrolü yalnızca normal DeFiTuna piyasa havuzunu doğruladı; Jupiter rotasının gerçekte kullanacağı havuzu değil.

Not: Proje ekibi tarafından onaylanan olay sonrası analiz [1], saldırgan tarafından oluşturulan havuzun meşru oracle fiyatına yakın başlatıldığını açıklamaktadır. Zincir üstü kanıtlar, havuzun aşırı bir fiyatta başlatıldığını göstermektedir; takas öncesi kontrol, saldırgan tarafından kontrol edilen havuzu değil, ayrı normal piyasa havuzunu doğruladığı için geçti.

Aşağıdaki analiz, 4x33Dq...EXj1 işlemine dayanmaktadır. Birden fazla saldırı işlemi gerçekleştirildi; bu işlem temel tekniği örneklemektedir.

  • Adım 1: Saldırgan yeni bir Fusion TUNA/USDC havuzu oluşturdu. Bu havuz gerçek TUNA ve USDC mint'lerini kullandı ancak normal DeFiTuna piyasa havuzundan ayrıydı. Havuz, TUNA başına yaklaşık 1,149 milyar USDC fiyatlamasıyla 208636 tick'ine yakın aşırı bir fiyatta başlatıldı. Bu fiyatta, çok küçük miktarda TUNA bile bir takasta yüz binlerce USDC'yi emebilirdi.
  • Adım 2: Saldırgan yeni havuza iki küçük satış taraflı limit emri yerleştirdi. Her emir 0,000526 TUNA yatırdı; toplam 0,001052 TUNA. Havuz fiyatı son derece yüksek olduğundan, bu küçük TUNA arzı takas gerçekleştiğinde tüm ödünç alınan USDC miktarını emebilirdi.
  • Adım 3: Havuz hazırlandıktan sonra saldırgan, pozisyon tokeni olarak TUNA ve teminat tokeni olarak USDC ile bir DeFiTuna spot pozisyonu açtı. Saldırgan teminat olarak 0 USDC sağladı ve DeFiTuna'nın USDC kasasından 570.000 USDC ödünç aldı.
  • Adım 4: Takastan önce DeFiTuna, normal piyasa havuzu fiyatını oracle fiyatıyla karşılaştırdı. Normal havuzun spot fiyatı oracle'a yakındı, bu nedenle kontrol geçti. Bu kontrol yalnızca normal DeFiTuna piyasa havuzunu doğruladı; Jupiter rotasının kullanacağı Fusion havuzunu doğrulamadı.
  • Adım 5: Takas, fonları minimum çıktı pratikte sıfıra ayarlanmış şekilde saldırgan tarafından kontrol edilen Fusion havuzu üzerinden yönlendiren saldırgan tarafından sağlanan Jupiter rotasını izledi. Protokol ücretinin ardından 569.601 USDC saldırı havuzuna yönlendirilirken DeFiTuna pozisyonu yalnızca 494 ham birim TUNA (0,000494 TUNA) aldı.
  • Adım 6: Takastan sonra pozisyon yaklaşık 570.000 USDC borç ve yalnızca toz miktarında TUNA tutuyordu. DeFiTuna bu TUNA bakiyesini USDC değerine dönüştürdüğünde sonuç 0'a yuvarlandı. Sağlık kontrolü total == 0 durumunu sağlıklı olarak değerlendirdi ve kötü borç pozisyonu kabul edildi.
  • Adım 7: Saldırgan, saldırgan tarafından kontrol edilen Fusion havuzunda biriken USDC'yi çekti. İki çekim neredeyse eşitti ve Adım 2'de oluşturulan iki limit emri pozisyonuyla örtüşüyordu.

Sonuç

Temel neden, sağlık kontrolünün total == 0 dalının ödenmemiş borçtan bağımsız olarak pozisyonu sağlıklı kabul etmesiydi. Saldırgan tarafından kontrol edilen yönlendirme ve likidite bu açığı tetiklemek için gerekli koşulları yarattı; ancak sağlık kontrolü, kötü borcu engellemesi gereken nihai denetim mekanizmasıydı.

En doğrudan düzeltme, total == 0 ve debt > 0 olan herhangi bir pozisyonu reddetmektir. Ödenmemiş borcu olan sıfır değerli bir pozisyon hiçbir zaman sağlıklı değildir. Ayrıca protokol, çağıran tarafından sağlanan rota parametrelerinden bağımsız olarak oracle fiyatından ve ödünç alınan miktardan kabul edilebilir minimum takas çıktısını türetmelidir. Oracle/fiyat kontrolünü gerçek takas havuzuna bağlamak veya takas çıktısını protokol tarafından hesaplanan bir alt sınıra göre doğrulamak, takas öncesi kontrolün doğrulanmamış bir havuz üzerinden yönlendirme yapılarak atlatılmasını önleyecektir.

Referanslar

Phalcon Explorer ile Başlayın

Akıllıca Hareket Etmek için İşlemleri İnceleyin

Hemen ücretsiz deneyin

Bu Haftanın Diğer Olayları

BarnBridge

15 Temmuz 2026'da, Ethereum üzerinde bir getiri tahsis protokolü olan BarnBridge, USDC cinsinden yaklaşık 776.000 dolar tutarında istismar edildi [1]. Temel neden, terk edilmiş yönetişim sözleşmesinin kritik protokol yapılandırmasını değiştirme yetkisini korumaya devam etmesiydi. Saldırgan, bir protokol bileşeninin kontrolcüsünü değiştiren kötü amaçlı bir öneriyi geçirecek kadar oy gücü edindi; ardından kullanıcı onaylı USDC'yi aktarmak için yeni kontrolcüyü kullandı.

Arka Plan

BarnBridge, getiri sağlamak amacıyla kullanıcıların fonlarını farklı borç verme piyasalarına tahsis eden, DAO tarafından yönetilen bir protokoldür. Oy gücü, stake edilen BOND miktarı ve kilit süresiyle belirlenir. Öneri oluşturmak, toplam oy gücünün en az %1'ine eşit oy gücü gerektirmektedir. Bir önerinin geçmesi için minimum %40 yeter sayısını sağlaması ve katılan oyların en az %60'ını alması gerekir. Gönderildikten sonra bir öneri, yürütülmeden önce iki günlük ısınma süreci, üç günlük oylama süreci ve iki günlük kuyruk sürecinden geçer.

Güvenlik Açığı Analizi

Temel neden, protokolün kullanım dışı bırakılmasının ardından terk edilmiş yönetişim sözleşmesinin kritik protokol yapılandırmasını değiştirme yetkisini korumaya devam etmesiydi. Yönetişim sistemi, kullanıcıların daha önce USDC harcaması için onayladığı bir sözleşme olan CompoundProvider'ın Controller atamasını kontrol ediyordu. BarnBridge kullanım dışı bırakıldığı için, toplam stake edilen BOND ve aktif katılım önemli ölçüde azalmış; bu da düşmanca öneri geçişini önemsiz derecede kolay hale getirmişti.

Saldırı Analizi

Aşağıdaki analiz, 0xd191fe...895afb işlemine dayanmaktadır.

Saldırgan yaklaşık 32.795 BOND edinmek için yaklaşık 0,335 ETH harcadı, ardından 32.000 BOND yatırıp kilitledi ve toplam oy gücünün yaklaşık %43'ünü elde etti.

  • Adım 1: Saldırgan bir proxy sözleşmesi dağıttı ve kötü amaçlı bir öneri sundu. İki günlük ısınma sürecinin ardından saldırgan, hem yeter sayı hem de onay gerekliliklerini karşılayarak tüm oy gücünü lehte kullandı.
  • Adım 2: Saldırgan öneriyi sıraya koydu. İki günlük kuyruk süresi dolunca saldırgan onu yürüterek CompoundProvider'ın Controller'ını saldırganın proxy sözleşmesine ayarladı.
  • Adım 3: Saldırgan proxy sözleşmesinin mantığını güncelledi ve _takeUnderlying() fonksiyonunu çağırdı; bu fonksiyon, yaklaşık 50 kullanıcının ödenmemiş USDC allowance'larını kullanarak USDC'lerini CompoundProvider'a aktardı. Saldırgan ardından fonları saldırganın adresine iletmek için transferFees() fonksiyonunu çağırarak USDC cinsinden yaklaşık 776.000 dolar kâr elde etti.

Sonuç

Bir DAO veya protokol kullanım dışı bırakılıyorsa, yönetişim sözleşmesi güvenlik açısından kritik yapılandırmaları —özellikle yönetici, kontrolcü ve fon çekme izinlerini— değiştirme yetkisini bırakmalı veya kalıcı olarak devre dışı bırakmalıdır. Somut önlemler arasında yönetişim sözleşmesinin alt sözleşmeler üzerindeki yönetici rolünü iptal etmek, mülkiyeti bir yakma adresine devretmek veya güncelleme fonksiyonlarını devre dışı bırakan ve kontrolcü referanslarını değiştirilemez güvenli değerlere ayarlayan nihai bir öneri yürütmek yer almaktadır. Kullanım dışı bırakılmış bir protokolde yönetişim yetkisini bırakmak düşük maliyetli bir saldırı yüzeyi oluşturur: katılım azaldıkça yeter sayıya ulaşmak için gereken sermaye de orantılı olarak düşer.

Referanslar

Phalcon Security ile Başlayın

Her tehdidi tespit edin, önemli olanları uyarın ve saldırıları engelleyin.

Hemen ücretsiz deneyin

BlockSec Hakkında

BlockSec, tam kapsamlı bir blok zinciri güvenliği ve kripto uyumluluk sağlayıcısıdır. Müşterilerin kod denetimi gerçekleştirmesine (akıllı sözleşmeler, blok zinciri ve cüzdanlar dahil), saldırıları gerçek zamanlı olarak engelleme, olayları analiz etme, yasadışı fonları izleme ve protokollerin ve platformların tam yaşam döngüsü boyunca AML/CFT yükümlülüklerini yerine getirme konularında yardımcı olan ürün ve hizmetler geliştiriyoruz.

BlockSec, prestijli konferanslarda birden fazla blok zinciri güvenlik makalesi yayımlamış, birçok DeFi uygulamasının sıfırıncı gün saldırısını raporlamış, 20 milyonun üzerinde dolarlık fonu kurtarmak için birden fazla saldırıyı engellemiş ve milyarlarca dolarlık kripto varlığını güvence altına almıştır.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit