Back to Blog

~$1.6M Kaybedildi: Moke Token, LpdFi İstismarları | BlockSec Haftalık

Code Auditing
August 12, 2026
8 min read
Key Insights
  • Bu raporda, her ikisi de BNB Chain üzerinde gerçekleşen fiyat manipülasyonu açıklarına ilişkin 2 önemli güvenlik olayı yer almakta olup toplam kayıplar yaklaşık 1,6 milyon dolar seviyesindedir.

  • LpdFi (~697 bin dolar), hem emir değerlemesi hem de faiz kullanımı için aynı manipüle edilebilir PancakeSwap çifti rezervlerini yeniden kullandı; bu durum saldırganın bir pozisyonun anaparasını şişirmesine ve ardından havuzu yeniden şekillendirerek aşırı büyümüş talebin karşılanmasına olanak tanıdı. Moke Token (~906 bin dolar) ise anlık fiyat oracle'ını yinelenen LP temettü muhasebesiyle birleştirdi.

  • Her iki olay da tek bir temel örüntüyü paylaşmaktadır: yeterli geçici likiditeye sahip bir saldırganın tek bir işlem içinde hareket ettirebileceği, canlı AMM anlık durumundan türetilen güvenlik açısından kritik muhasebe.

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 MOKE miktarı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ı çekilebilir BNB'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: 113613923 bloğunda saldırgan, flaş kredi kullanarak LPD/USDC çiftinde büyük miktarda USDC'den LPD'ye swap gerçekleştirmiştir. Bu işlem, havuzun LPD rezervini azaltmış ve LPD.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.732 USD 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, PoolManager aracılığıyla 730.607,755349 USDC ödünç almış, LPD/USDC çiftine doğrudan 3.440,992868 USDC aktarmış ve sync() ç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ı USDC rezervini 718.619,888284'ten 722.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çin 701.623,66 USDC tutarında talep edilebilir faiz üretmiştir. Rezerv manipülasyonunun ardından removeLp(), yalnızca 1.678.049,359669 LP 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 yakarak 693.529,790711 USDC'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 deneyin

Bu 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'taki participate fonksiyonu aracılığıyla USDT yatırarak salım kotası hazırlamış ve günde %5,5 oranında açılan 45.000 USDT değerinde MOKE salım kotası elde etmiştir.
  • Adım 2: Saldırgan MOKE/WBNB LP tokenları basmış ve MokeLPDividend'deki syncUserLP fonksiyonunu ç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 bunu WBNB/USDT çiftinde USDT ile takas ederek USDT'nin spot fiyatını yükseltmiştir. Ardından MokeRelease'deki MOKE fiyatını güncellemiş; bu işlemin sonucunda yerleşik MOKE fiyatı sert biçimde düşmüştür.
  • Adım 4: Manipüle edilmiş MOKE fiyatı geçerliyken saldırgan, MokeRelease'deki claim fonksiyonunu çağırarak 24.766 USDT değerindeki kotayı MOKE tokenlarıyla itfa etmiş ve kotanın gerçek değerinden çok daha fazla MOKE almıştır.
  • Adım 5: Saldırgan, salınan MOKE'yi beyaz listedeki MokeLPDividend sözleşmesine aktarmış ve MOKE'yi BNB'ye satan distributeDividend fonksiyonunu çağırmıştır. Ardından çoğaltılmış LP bakiyesi kayıtlı adresleri kullanarak claimDividend fonksiyonunu çağırmış ve dağıtılan BNB'yi toplayarak toplamda 1.546 BNB elde 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.

Phalcon Security ile Başlayın

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

Şimdi ücretsiz deneyin

Best Security Auditor for Web3

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

BlockSec Audit