Jarvis Network, Flaş Krediler ile yeniden giriş saldırısına uğradı ve 66.3 bin MATIC kaybetti.

Jarvis Network Flaş Krediler yeniden giriş saldırısı analizi

Son zamanlarda, Jarvis_Network adlı bir proje Flaş Krediler yeniden giriş saldırısına maruz kaldı ve yaklaşık 66.3 bin MATIC token kaybına neden oldu. Bu olay 15 Ocak 2023 akşamı gerçekleşti.

Jarvis Network Flaş Krediler yeniden giriş saldırısı olayı analizi

İşlem çağrı yığınını derinlemesine analiz ederek, saldırganların yeniden giriş açığını kullandığını tespit ettik. Yeniden giriş sürecinde, aynı sözleşmenin aynı fonksiyonu birden fazla kez çağrıldı, ancak her çağrının geri dönüş değeri arasında büyük farklılıklar vardı. Bu fark, özellikle remove_liquidity fonksiyonunda belirgindi.

Jarvis Network Flaş Krediler重入攻击事件分析

Reentrancy saldırısı, likiditenin kaldırılması sürecinde meydana gelir. Polygon ve EVM homomorfik zincirler olduğundan, MATIC sözleşmeye transfer edildiğinde, sözleşmenin reentrancy mantığı tetiklenir. Çağrı yığınını detaylı bir şekilde analiz ederek, sorunun getUnderlyingPrice fonksiyonunda olduğunu keşfettik.

Jarvis Network Flaş Krediler重入攻击事件分析

Daha fazla araştırma, saldırganların likiditeyi kaldırırken self.D değişkeninin güncellenme zamanlamasındaki açığı kullandığını ortaya koydu. Normalde, remove_liquidity yönteminin akışı şöyle olmalıdır: 1) kullanıcı LP'sini yok et; 2) kullanıcıya stake edilen fonları gönder; 3) self.D'yi güncelle. Ancak, saldırgan ikinci adımda yeniden giriş işlemi gerçekleştirdi ve bu da fiyat hesaplamasında ciddi hatalara yol açtı.

Jarvis Network Flaş Krediler重入攻击事件分析

remove_liquidity fonksiyonu, reentrancy'yi önlemek için @nonreentrant('lock') dekoratörünü kullanmasına rağmen, saldırganın diğer sözleşmelere kredi fonları için yeniden girmesi nedeniyle bu yeniden giriş kilidi etkili olmamıştır.

Jarvis Network Flaş Krediler重入攻击事件分析

Bu saldırı esasen iki sorunu ortaya çıkardı:

  1. Değişken değiştirme mantığı dış çağrıdan sonra yer alıyor, bu da fiyat alımında anormallik yaratıyor.
  2. Kontratlar arası tekrar girişi, tekrar giriş kilidinin etkisiz hale gelmesine neden olur.

Jarvis Network Flaş Krediler yeniden giriş saldırısı olay analizi

Benzer saldırıları önlemek için, proje sahiplerinin aşağıdaki önlemleri alması önerilir:

  1. Kodun titiz bir güvenlik denetiminden geçtiğinden emin olun.
  2. Değişken değişikliklerini dış çağrılardan önce yerleştirin.
  3. Fiyat elde etmek için çoklu veri kaynağı yöntemi kullanmak.
  4. "Önce kontrol et, sonra değişkenlere yaz, ardından dış çağrıları yap" kodlama standartlarına (Checks-Effects-Interactions) uyun.

Jarvis Network Flaş Krediler reentrancy saldırı olayı analizi

Bu önlemleri alarak, proje güvenliğini ve istikrarını önemli ölçüde artırabilir ve kullanıcılara daha güvenilir hizmetler sunabilir.

Jarvis Network Flaş Krediler yeniden giriş saldırı olayı analizi

Jarvis Network Flaş Krediler yeniden giriş saldırısı olayı analizi

Jarvis Network Flaş Krediler重入攻击事件分析

Jarvis Network Flaş Krediler重入攻击事件分析

Jarvis Network Flaş Krediler重入攻击事件分析

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 2
  • Share
Comment
0/400
WalletAnxietyPatientvip
· 19h ago
Hem acemi hem de oyun oynamayı seven bireysel yatırımcı, özel anahtarını zamanında yedeklemeyi unutma.

İçerik dili: Çince

Verilen yorum:

Sözleşme denetimi yapılmadan bu zararı çekmek ~
View OriginalReply0
LiquidatedNotStirredvip
· 19h ago
Yine reentrancy haha, çoktan kilitlemeliydi.
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)