Back to Blog

Piyasa Riskinin Ötesinde: SushiSwap'ın KashiPairMediumRiskV1 Sözleşmesinde Tespit Edilen Bir Mantık Hatası

Code Auditing
15 Aralık 2022
3 min read

08 Kasım 2022'de, Sushi'nin resmi KashiPairMediumRiskV1 sözleşmesi üzerine (veya ondan fork edilen bazı sözleşmeler) kurulu havuzlardan bazı saldırıların başarıyla varlık çektiğini tespit ettik. Yaptığımız araştırma sonucunda, temel nedenin token fiyatlarının yanlış hesaplanmasına yol açan bir mantık hatasından kaynaklandığını bulduk.

Derhal Sushi'nin güvenlik ekibiyle iletişime geçtik ve bulgularımızı doğruladılar. Sevindirici olan, değerli ancak savunmasız bazı havuzları saldırılardan korumak için harekete geçmiş olmalarıydı. Bunun yanı sıra, açıktan fon kaybedenleri tazmin etmek için prosedürler de sağladılar. Bu nedenle, güvenlik açığı ve saldırılara ilişkin ayrıntıları açıklamanın artık güvenli olduğuna inanıyoruz. Bu raporda ayrıntılı bir analiz sunmak istiyoruz.

Güvenlik Açığı Analizi

KashiPairMediumRiskV1 sözleşmesinin kaynak kodunu inceledikten sonra, bu hatanın borrow fonksiyonunda yer aldığı sonucuna vardık. Bu fonksiyon, solvent değiştiricisindeki borç payını doğrulamak için güncel olmayan exchangeRate değerini kullanmaktadır. Özellikle, doğrulama işlemi _isSolvent fonksiyonundaki exchangeRate'in mevcut değerine göre gerçekleştirilecektir.

liquidate fonksiyonunda ise updateExchangeRate fonksiyonu en başta çağrılmaktadır. Dolayısıyla doğrulama ve hesaplama işlemleri güncellenmiş değere göre gerçekleştirilecektir.

Açıkça görülmektedir ki bu hata, (büyük) bir fiyat farkına yol açmak için istismar edilebilir.

Saldırı Analizi

İki saldırı gözlemledik:

  1. 0xcf8f242ea83100b6d43e659f7f53a698d304fc6ac2ca6fe79e3e07ee05fefe58: Kurban KashiPairMediumRiskV1 sözleşmesini kullanmaktadır ve kayıp yaklaşık 9.466 USDC'dir.
  2. 0x3d163bfbec5686d428a6d43e45e2626a220cc4fcfac7620c620b82c1f2537c78: Kurban, CauldronMediumRiskV1 (KashiPairMediumRiskV1'in fork'u) kullanan bir strateji sözleşmesidir ve kayıp yaklaşık 110.911 MIM'dir.

Birinci saldırı işleminin, orijinal saldırı işlemini öne geçen bir bot tarafından başlatıldığını unutmayın: 0x7a845d8d2af7919f5b9e22dd5571305cb5347d17986a8402715c1463d515fc18, orijinal saldırgan adresi 0xb7ea0f0f8c6df7a61bf024db21bbe85ac5688005'tir.

Aşağıdaki adımlardan oluşan ilk saldırı işlemini örnek olarak alıyoruz:

  1. Balancer'dan 40.900 BADGER ve 121.904 USDC tutarında bir flaş kredi almak.
  2. BentoBox'a 40.900 BADGER ve 113.599 USDC yatırmak.
  3. 40.900.000.000.000.000.000.000 adet BADGER payı yatırmak için kmBADGER/USDC-LINK'in addCollateral fonksiyonunu çağırmak.
  4. 112.529.000.000 adet USDC payı yatırmak için kmBADGER/USDC-LINK'in addAsset fonksiyonunu çağırmak.
  5. 120.755.095.093 adet USDC payı ödünç almak için borrow fonksiyonunu çağırmak.
  6. UpdateExchangeRate fonksiyonunu çağırmak.
  7. Kendini tasfiye etmek için liquidate fonksiyonunu çağırmak.
  8. BentoBox'tan 40.899 BADGER ve 123.006 USDC çekmek.
  9. Flaş krediyi geri ödemek ve yaklaşık 9.466 USDC kâr elde etmek.
  1. adımın zorunlu olmadığını unutmayın, çünkü borrow fonksiyonu UpdateExchangeRate fonksiyonunu zaten çağırmaktadır.

Temel adımlar şu şekildedir:

borrow fonksiyonunda kullanılan exchangeRate değerinin liquidate fonksiyonunda kullanılan değerden saptığını anlamak güç değildir:

  • borrow fonksiyonunda: 250.997.938.545.109.237.740.214.705.193
  • liquidate fonksiyonunda: 328.266.883.541.864.569.505.752.156.794

Etki

Bu hatadan etkilenebilecek düzinelerce havuz (hem Ethereum hem de BSC üzerinde) bulunmaktadır. Bu sorunu hafifletmek için geçici bir yöntem, UpdateExchangeRate fonksiyonunu zaman zaman (veya periyodik olarak) çağırarak sapmayı azaltmak veya ortadan kaldırmaktır. Bu yöntem, etkilenen birçok proje tarafından zaten benimsenmiştir ve ilgili işlemler zincir üzerinde gözlemlenebilmektedir.

Çıkarımlar

Bir DeFi projesini güvenli kılmak kolay bir iş değildir. Kod denetiminin yanı sıra, topluluğun proje durumunu izlemek için proaktif bir yöntem benimsemesi ve saldırı gerçekleşmeden önce engellenmesi gerektiğini düşünüyoruz.

BlockSec Hakkında

BlockSec, 2021 yılında dünya genelinde tanınan güvenlik uzmanlarından oluşan bir ekip tarafından kurulmuş öncü bir blok zinciri güvenlik şirketidir. Şirket, kitlesel benimsemeyi kolaylaştırmak amacıyla gelişmekte olan Web3 dünyasının güvenliğini ve kullanılabilirliğini artırmaya kendini adamıştır. Bu doğrultuda BlockSec; akıllı sözleşme ve EVM zinciri güvenlik denetim hizmetleri, güvenli geliştirme ve tehditleri proaktif olarak engelleme için Phalcon platformu, fon takibi ve soruşturma için MetaSleuth platformu ve kripto dünyasında web3 geliştiricilerinin verimli gezinmesi için MetaDock uzantısı sunmaktadır.

Bugüne kadar şirket; MetaMask, Uniswap Foundation, Compound, Forta ve PancakeSwap gibi 300'den fazla saygın müşteriye hizmet vermiş ve Matrix Partners, Vitalbridge Capital ile Fenbushi Capital gibi önde gelen yatırımcılardan iki finansman turunda on milyonlarca ABD doları almıştır.

Resmi web sitesi: https://blocksec.com/

Resmi Twitter hesabı: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Yaklaşık 5,57 milyon USD Kayıp: X100 Freezer ve NEM İstismarları | BlockSec Haftalık Bülteni
Security Insights

Yaklaşık 5,57 milyon USD Kayıp: X100 Freezer ve NEM İstismarları | BlockSec Haftalık Bülteni

Bu haftalık rapor, 19.10.2026–25.10.2026 tarihleri arasında Ethereum ve BNB Chain'de yaşanan iki güvenlik olayını ele alıyor. X100 Freezer'ın flaş krediyle finanse edilen yönetişim kontrolünün ele geçirilmesini ve BNB Chain'deki bir NEM tokeninin likidite havuzunu etkileyen vergi hesaplaşması kusurunu inceliyor. Raporun kapsamındaki tahmini kayıplar toplam yaklaşık 5,57 milyon USD: temsili X100 işleminden ~4,75 milyon USD, NEM havuzu olayından ise ~820 bin USD. Bu toplama, ayrıca bildirilen sonraki X100 fon çıkışları dahil değil.

Yaklaşık 3,87 milyon USD kayıp: Autheo Network ve UNCX saldırıları | BlockSec Haftalık Bülteni
Security Insights

Yaklaşık 3,87 milyon USD kayıp: Autheo Network ve UNCX saldırıları | BlockSec Haftalık Bülteni

Bu haftalık rapor, 12.10.2026–18.10.2026 tarihleri arasındaki 3 güvenlik olayını ve toplamda yaklaşık 3,87 milyon USD tutarındaki tahmini kaybı ele alıyor. Autheo Network, yaklaşık 1,76 milyon USD tutarında kayba yol açan bir özel anahtar ele geçirilmesi olayı yaşadı; Qubic Wallet, zayıf seed oluşturma nedeniyle yaklaşık 1,30 milyon USD kaybetti. UNCX Network’ün Smart Token Vesting V2 sözleşmelerinde ise Ethereum, BNB Chain, Base ve Robinhood Chain üzerinde yaklaşık 807 bin USD tutarında bir muhasebe hatası meydana geldi. Öne çıkarılan UNCX analizi, hatalı toplam pay hesaplamasının farklı token/pay oranlarıyla oluşturulan hak ediş dilimlerini nasıl birbirine karıştırdığını ve ortak havuzlardan hak edilenden fazla çekim yapılmasına nasıl olanak tanıdığını açıklıyor.

~542 bin dolar kayıp: MakerDaoBot Açığı | BlockSec Haftalık Bülteni
Security Insights

~542 bin dolar kayıp: MakerDaoBot Açığı | BlockSec Haftalık Bülteni

Ethereum'da 2026/10/05-2026/10/11 döneminde 1 güvenlik olayı yaşandı; kayıp yaklaşık 542 bin $. Kötü amaçlı adaptör, erişim kontrolü olmayan MakerDaoBot işleviyle botun MakerDAO bakiyelerinde yetki aldı; 4 eski ETH-A ihalesini kapatıp 200 ETH-A teminatını WETH'ye çevirdi. WETH, 200 ETH olarak saldırgana gönderildi.

Best Security Auditor for Web3

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

BlockSec Audit