Back to Blog

Daha Az Yatır, Daha Fazla Al: yCREDIT Saldırısının Detayları

Code Auditing
3 Ocak 2021
2 min read

2 Ocak 2021 tarihinde (Pekin Saati 07:25), izleme sistemimiz ThunderForecast, yCREDIT akıllı sözleşmesine yönelik bir dizi şüpheli işlem bildirdi. Ardından, bu işlemleri analiz etmek ve bildirilen tüm işlemlerin kötü amaçlı olduğunu doğrulamak için araştırma ekibimiz tarafından geliştirilen EthScope sistemini kullandık. Bu blogda saldırının ayrıntılarını açıklıyoruz.

Ayrıntılar

Saldırı, basılan token sayısının amaçlanan miktarla tutarsız olmasından kaynaklanmaktadır. Bu sayede saldırgan, daha düşük bir fiyatla çok daha fazla yCREDIT token'ı elde edebilmektedir. Ardından bu token'lar kâr elde etmek amacıyla satılabilir.

Güvenlik açığı bulunan fonksiyon, StableYieldCredit sözleşmesinin _deposit fonksiyonunda yer almaktadır.

Aşağıda, tüm süreci açıklamak için bir saldırı işlemi kullanacağız.

Saldırgan önce 1e-8 WBTC ve 331.335 yCredit token'ını WBTC-yCREDIT Çift havuzuna aktardı. Ardından saldırgan, saldırıyı başlatmak için StableYieldCredit sözleşmesine 0.5 WBTC yatırdı.

Özellikle, _value değeri, ChainLink fiyat oracle sağlayıcısına dayalı olarak token (0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 - WBTC) için amount (0.5) kullanılarak hesaplanmaktadır (satır 480, _value değeri 1466786010075'tir). Amaç, yatırılan WBTC'nin USD cinsinden değerini hesaplamaktır. Ardından sözleşme, WBTC'yi yatırana (saldırgana) _value - fee kadar yCREDIT token'ı aktaracaktır. Bunun nedeni, yCREDIT'in değerinin bir USD'ye eşit olarak tasarlanmış olmasıdır. Saldırganın küçük bir fee miktarı kaybetmesi dışında her şey yolundadır.

Ayrıca sözleşme, yatırılan WBTC'yi WBTC-yCREDIT Çift havuzuna ekleyecektir. Bunun nedeni, yatırılan WBTC sözleşmeye kilitlenirse likiditeyi kaybedecek olmasıdır. Bu nedenle önce havuza eklenecek token çiftinin (WBTC'den yCREDIT'e) değeri _addLiquidity fonksiyonu kullanılarak hesaplanır. Temel olarak bu değer, havuzun içindeki mevcut rezervlere dayanılarak hesaplanır. Havuzda yalnızca 1e-8 WBTC ve 331.335 yCREDIT token'ı bulunduğundan, hesaplanan amountA değeri 44'tür (amountB değeri 1466786010075'tir). Bu, saldırganın yalnızca 44e-8 WBTC harcadığı (satır 485) ve 14667.86010075 - fee = 14594.52080025 yCREDIT token'ı elde ettiği anlamına gelmektedir (satır 493). Aynı zamanda havuzda az miktarda WBTC (1e-8 + 44e-8) ve (331.335 + 14667.86010075) yCREDIT token'ı kalmaktadır.

Kâr elde etmek için saldırgan, kazandığı 14594.52080025 yCREDIT token'ını borsalarda kolayca takas edebilir. İlginç bir şekilde, bu işlemde kâr elde etme süreci gerekenden çok daha karmaşıktır. Diğer işlemlerde de akıllıca bir saldırı stratejisi gözlemledik.

Saldırıda yer alan bir dizi işlem bulunmakta olup bunlar aşağıdakileri kapsamaktadır (ancak bunlarla sınırlı değildir).

Güncelleme

2020/01/03: Güvenlik açığını gideren yeni bir akıllı sözleşme yayınlandı.

Zaman Çizelgesi

  • 2021/01/01 23:25 UTC, saldırılar sistemimiz tarafından tespit edildi
  • 2021/01/02 16:20 UTC, bu blog yayınlandı
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