Geçtiğimiz hafta (2026/08/03 - 2026/08/09), toplam yaklaşık 1,6 milyon dolarlık kayıpla sonuçlanan aşağıdaki 2 önemli güvenlik olayı öne çıkmaktadır.
| Tarih | Olay | Tür | Tahmini Kayıp |
|---|---|---|---|
| 2026/08/03 | LpdFi | Fiyat Manipülasyonu | ~$697K |
| 2026/08/03 | Moke Token | Fiyat Manipülasyonu ve Muhasebe Hatası | ~$906K |
- LpdFi, manipüle edilebilir AMM rezervlerinin hem pozisyon değerlemesi hem de faiz iadesi için kullanılmasının yarattığı sistemik riski gözler önüne serdiği için seçilmiştir. Saldırgan önce spot fiyat manipülasyonu yoluyla kayıtlı anaparayı şişirmiş, ardından doğrudan bir bağış ve
sync()çağrısıyla havuz rezervlerini değiştirerek aşırı büyütülmüş faiz talebini çalıştırılabilir hale getirmiştir. Bu olay, mevduat değerlemesi, faiz hesaplama ve itfa işlemlerini bağımsız adımlar olarak değil, pozisyonun tüm yaşam döngüsü boyunca ödeme gücünün doğrulanması gerekliliğini vurgulamaktadır. - Moke Token, ayrı muhasebe mekanizmalarındaki güvenlik açıklarının tek bir kârlı saldırıda nasıl bir araya getirilebileceğini gösterdiği için seçilmiştir. Saldırgan, talep edilebilecek
MOKEmiktarını şişirmek için spot fiyatı manipüle etmiş, aynı LP tokenlarını birden fazla adrese senkronize ederek LP ödül kayıtlarını çoğaltmış ve temettü sistemi aracılığıyla elde edilen tokenları çekilebilirBNB'ye dönüştürmüştür. Bu olay, manipülasyona dayanıklı fiyat kaynakları kullanmanın ve ödül muhasebesini gerçek token sahipliğiyle senkronize tutmanın önemini vurgulamaktadır.
Web3 İçin En İyi Güvenlik Denetçisi
Lansmandan önce tasarımı, kodu ve iş mantığını doğrulayın
Haftanın Öne Çıkanı: LpdFi Protokolü
Bu olay, aynı manipüle edilebilir AMM durumunun hem yükümlülük oluşturmayı hem de varlık iadesini yönetmesi nedeniyle öne çıkarılmıştır. Bir protokolün mevduat değerlemesi, faiz tahakkuku ve itfa işlemlerini bağımsız adımlar olarak değil, tüm pozisyon yaşam döngüsü boyunca ödeme gücünü doğrulaması gerektiğini göstermektedir.
3 Ağustos 2026'da BNB Chain'deki LpdFi protokolü, LPD/USDC PancakeSwap çiftinden yaklaşık 697.000 dolar çalınarak istismar edilmiştir. LpdFi, bir pozisyonun kayıtlı değerini ve sonraki faiz ödemesini aynı canlı PancakeSwap çiftinden türettiğinden, bu çiftin manipüle edilmesi her ikisini de bozmuştur. Saldırgan, gerçek değerinin çok üzerinde değerlenen bir pozisyon açmış, faizin birikmesini beklemiş ve ardından şişirilmiş faiz talebinin ödenebilmesi için çiftin rezervlerini kaydırarak protokolün elinde tuttuğu neredeyse tüm likiditeyi boşaltmıştır.
Arka Plan
LpdFi, LPD tokeni etrafında inşa edilmiş bir getiri protokolüdür. Kullanıcı, LPD yatırarak bir pozisyon oluşturur. Yatırma sırasında protokol, mevcut LPD/USDC PancakeSwap spot fiyatını kullanarak yatırımı değerlendirir ve sonucu emir için USD cinsinden anapara olan uAmount olarak kaydeder. Emir, her birinin günlük bir muhasebe dönemi olduğu ihraçlar aracılığıyla faiz biriktirmekte ve protokol her emrin toplam faizini kayıtlı anaparaya göre sınırlamaktadır.
Kullanıcı faiz talep ettiğinde protokol, LpdFi tarafından tutulan LP tokenlarını kullanarak LPD/USDC çiftinden likidite çekerek muhasebe faizini USDC'ye dönüştürür. Ardından itfa edilen USDC, talep sahibi ile ücret adresi arasında paylaştırılır. Pozisyon yaşam döngüsünün her iki ucu da, yani yatırımda değerleme ve itfada ödeme, aynı canlı PancakeSwap çiftinden okumaktadır.
Güvenlik Açığı Analizi
Hatalı sözleşmeler 0xce6a...f295e ve 0x3876...273604 adresleridir.
Temel neden, LpdFi'nin hem emir muhasebesi hem de faiz iadesi için canlı LPD/USDC spot fiyatını ve rezervlerini gerçeğin kaynağı olarak kullanmasıdır. Bu değerlerin hiçbirine güvenmek güvenli değildir: ikisi de, yeterli geçici likiditeye sahip bir çağrıcının tek bir işlem içinde hareket ettirebileceği çift rezervlerinden türetilmektedir.
Yatırım sırasında buy(), token miktarını token.price() üzerinden hesaplar:

LPD.price(), LPD/USDC rezervlerini doğrudan getReserves() aracılığıyla okur; bu nedenle kayıtlı anapara spot fiyatıyla birlikte hareket eder:

İtfa sırasında claimInterest(), removeLp() çağrısı yaparak birikmiş faizi öder:

removeLp(), canlı rezerv r1 (veya r0) üzerinden kaç LP tokenının yakılacağını hesaplar:

Bunun sonucunda iki değişmez bozulmaktadır. Birincisi, kayıtlı anapara spot fiyatından türetildiği için, faiz tavanını yükselterek mevduatın gerçek değerinden çok daha büyük bir anapara kaydedilebilir. İkincisi, removeLp() LP yakma miktarını canlı rezervden belirlediği için, protokolün belirli bir USDC ödemesini karşılamak için yakması gereken LP token sayısı, talep anında sabitlenmemiş bir rezerv değerine bağlıdır.
Saldırı Analizi
Aşağıdaki analiz, 0xbb5b85...41c3588 ve 0x70bbe0...b3315d6 işlemlerine dayanmaktadır.
-
Adım 1:
113613923bloğunda saldırgan, flaş kredi kullanarak LPD/USDC çiftinde büyük miktardaUSDC'denLPD'ye swap gerçekleştirmiştir. Bu işlem, havuzunLPDrezervini azaltmış veLPD.price()tarafından döndürülen spot fiyatı yükseltmiştir. -
Adım 2: Fiyat şişirilmişken saldırgan, aşırı büyük bir emir açmak için
buy()fonksiyonunu çağırmıştır. Manipüle edilmiş spot fiyat üzerinden değerlenen yatırım,140.324.732USD anaparasıyla kaydedilmiştir.

-
Adım 3: Bir sonraki blok olan
113613924'te saldırgan, protokolün ihraç sınırını geçmiştir. Yalnızca bir blok geçmiş olmasına karşın protokol her ihraç değişikliğini günlük bir muhasebe dönemi olarak değerlendirmekte, bu nedenle şişirilmiş anapara üzerinden bir dönemlik faiz talep edilebilir hale gelmiştir. -
Adım 4: Talep işleminde saldırgan,
PoolManageraracılığıyla730.607,755349USDCödünç almış, LPD/USDC çiftine doğrudan3.440,992868USDCaktarmış vesync()çağrısı yapmıştır. Orijinal rezerv durumunda şişirilmiş faiz,LpdFi'nin elinde bulundurduğundan daha fazla LP token gerektireceğinden itfa işlemi başarısız olurdu. Çiftin kayıtlıUSDCrezervini718.619,888284'ten722.060,881152'ye yükselterek saldırgan,removeLp()'nin yakması gereken LP miktarını azaltmış ve bunu protokolün gerçek LP bakiyesi dahilinde tutmuştur.

- Adım 5: Saldırgan
claimInterest(0)fonksiyonunu çağırmıştır. Şişirilmiş anapara, bir ihraç için701.623,66USDCtutarında talep edilebilir faiz üretmiştir. Rezerv manipülasyonunun ardındanremoveLp(), yalnızca1.678.049,359669LP tokenı yakmak zorunda kalmış; bu miktar,LpdFi'nin elindeki tam LP bakiyesine neredeyse eşittir. Protokol, toplam LP arzının yaklaşık %97'sini yakarak693.529,790711USDC'yi saldırgana aktarmış; saldırgan ise flaş krediyi geri ödeyerek kârını çekmiştir.
Sonuç
Bu olay, manipüle edilebilir AMM spot rezervlerinin hem emir muhasebesi hem de itfa için gerçeğin kaynağı olarak kullanılmasından kaynaklanmıştır. Değerleme ve itfa, aynı canlı havuzdan okuyan bağımsız işlemler olarak ele alınmış; bu nedenle manipüle edilmiş bir fiyatta kaydedilen anapara, havuzun gerçek karşılığıyla hiçbir zaman mutabık kılınamamıştır.
Protokol, emir anaparası veya para çekme muhasebesi için canlı AMM rezervlerini gerçeğin kaynağı olarak kullanmamalıdır. Daha güvenli tasarımlar, her mevduatı spot değerleme yerine tazelik ve sapma kontrolleri içeren zaman ağırlıklı ortalama fiyat gibi manipülasyona dayanıklı bir fiyat kaynağı üzerinden değerlendirir ve bir talebin, pozisyonun gerçekten katkıda bulunduğundan daha fazla karşılığı asla yakamaması için itfadan önce ödeme gücü kontrolü uygular.
Phalcon Explorer ile Başlayın
Akıllıca Hareket Etmek İçin İşlemleri Derinlemesine İnceleyin
Şimdi ücretsiz deneyinBu Haftanın Diğer Olayları
Moke Token
3 Ağustos 2026'da BNB Chain'deki Moke Token, spot fiyat bağımlılığı ile çoğaltılmış LP muhasebesinin bir araya gelmesiyle yaklaşık 906.000 dolar zarara uğratılmıştır. Saldırgan, talep edilebilecek MOKE miktarını şişirmek için spot fiyatı manipüle etmiş, ardından bunu LP temettü sözleşmesine aktararak temettü sürecini tetiklemiş ve MOKE'yi BNB'ye satmış, son olarak çoğaltılmış LP kayıtları aracılığıyla bu BNB'yi toplamıştır.
Arka Plan
Moke Token, kullanıcı katılımı, gecikmeli MOKE salımı, LP ödülleri ve yönlendirme teşvikleri etrafında şekillenmiş bir BNB Chain ekosistemidir. Kullanıcılar USDT ve AC ile katılım sağlar. MOKE'yi hemen almak yerine her katılım, zamanla talep edilebilir hale gelen ve MokeRelease tarafından yönetilen gelecekteki bir MOKE salımı hakkı verir.
Kullanıcı talep ettiğinde sözleşme, yerleşik MOKE/USDT fiyatını kullanarak salınan USDT değerini MOKE'ye dönüştürür ve ardından karşılık gelen MOKE'yi rezerv havuzundan kullanıcıya aktarır. Bu salınan tokenlar varsayılan olarak kısıtlıdır ve yalnızca likidite eklemek için kullanılan sözleşmeler gibi yetkili işleyici adreslere aktarılabilir. LP token tutan kullanıcılar ise LP paylarına göre protokolün vergi ve temettü havuzlarından BNB dağıtımı almaktadır.
Güvenlik Açığı Analizi
Hatalı sözleşmeler 0x684d...b302a7 ve 0x5ae5...eba377 adresleridir.
Birinci temel neden, spot fiyat bağımlılığıdır. getMokeUsdtPrice(), MOKE/USDT fiyatını WBNB/USDT ve WBNB/MOKE çiftlerinden türetmekte olup manipülasyona dayanıklı bir fiyat kaynağı kullanmamaktadır:

İkinci temel neden, çoğaltılmış LP muhasebesidir. _syncUserLP(), bir kullanıcının LP bakiyesini lpToken.balanceOf(user) değerini userLPRecord[user]'a okuyarak kaydeder. Güncelleme manuel olarak tetiklenip yalnızca mevcut bakiyeye göre anahtarlandığından, aynı LP tokenları birden fazla adrese taşınıp her birinde senkronize edilebilir; bu durum, toplam kayıtlı LP bakiyesini ve kazanılan temettü ödüllerini şişirir:

Saldırı Analizi
Aşağıdaki analiz, 0xc0f1df...e26154 ve 0x077604...756a8f işlemlerine dayanmaktadır.
- Adım 1: İstismardan yaklaşık 10 gün önce saldırgan,
MokeVault'takiparticipatefonksiyonu aracılığıylaUSDTyatırarak salım kotası hazırlamış ve günde %5,5 oranında açılan45.000 USDTdeğerindeMOKEsalım kotası elde etmiştir.

- Adım 2: Saldırgan
MOKE/WBNBLP tokenları basmış veMokeLPDividend'dekisyncUserLPfonksiyonunu çağırarak LP bakiyesini kaydetmiştir. Ardından aynı LP tokenlarını başka bir adrese aktararak senkronizasyonu tekrarlamış; böylece tek bir token seti için çoğaltılmış LP kayıtları oluşturmuştur.

- Adım 3: Saldırgan, büyük miktarda
BNBödünç almak için flaş krediler kullanmış ve bunuWBNB/USDTçiftindeUSDTile takas ederekUSDT'nin spot fiyatını yükseltmiştir. ArdındanMokeRelease'dekiMOKEfiyatını güncellemiş; bu işlemin sonucunda yerleşikMOKEfiyatı sert biçimde düşmüştür.

- Adım 4: Manipüle edilmiş
MOKEfiyatı geçerliyken saldırgan,MokeRelease'dekiclaimfonksiyonunu çağırarak24.766 USDTdeğerindeki kotayıMOKEtokenlarıyla itfa etmiş ve kotanın gerçek değerinden çok daha fazlaMOKEalmıştır.

- Adım 5: Saldırgan, salınan
MOKE'yi beyaz listedekiMokeLPDividendsözleşmesine aktarmış veMOKE'yiBNB'ye satandistributeDividendfonksiyonunu çağırmıştır. Ardından çoğaltılmış LP bakiyesi kayıtlı adresleri kullanarakclaimDividendfonksiyonunu çağırmış ve dağıtılanBNB'yi toplayarak toplamda1.546 BNBelde etmiştir.

Sonuç
Moke Token, iki bağımsız açığı bir araya getirmiştir: flaş krediyle hareket ettirilebilen bir spot fiyat ve aynı LP tokenlarını birden fazla kez sayan bir temettü muhasebesi. İkisi birlikte çok daha büyük bir zarar vermiştir; oysa her biri tek başına bu kadar yıkıcı olmayabilirdi.
Protokoller, güvenlik açısından kritik hesaplamalarda anlık spot fiyatlardan kaçınmalı ve bunun yerine manipülasyona dayanıklı bir kaynak kullanmalıdır. Token bakiyelerine dayalı her muhasebe, bakiye değişiklikleriyle birlikte güncellenmelidir; böylece aynı tokenlar birden fazla adres üzerinden sayılamaz.



