🎉 攢成長值,抽華爲Mate三折疊!廣場第 1️⃣ 2️⃣ 期夏季成長值抽獎大狂歡開啓!
總獎池超 $10,000+,華爲Mate三折疊手機、F1紅牛賽車模型、Gate限量週邊、熱門代幣等你來抽!
立即抽獎 👉 https://www.gate.com/activities/pointprize?now_period=12
如何快速賺成長值?
1️⃣ 進入【廣場】,點擊頭像旁標識進入【社區中心】
2️⃣ 完成發帖、評論、點讚、發言等日常任務,成長值拿不停
100%有獎,抽到賺到,大獎等你抱走,趕緊試試手氣!
截止於 8月9日 24:00 (UTC+8)
詳情: https://www.gate.com/announcements/article/46384
#成长值抽奖12期开启#
Jarvis Network遭閃電貸重入攻擊 663,101 MATIC被盜
Jarvis Network項目遭受閃電貸重入攻擊分析
2023年1月15日,Jarvis_Network項目遭到攻擊,導致663,101個MATIC被盜。這起事件引發了對項目安全性的關注。
通過對交易調用棧的分析,發現攻擊者利用了重入漏洞。在重入過程中,對同一合約的相同函數調用,雖然輸入參數相同,但返回值卻有顯著差異。這種差異主要發生在remove_liquidity函數中。
重入攻擊主要針對某智能合約的remove_liquidity函數。該函數在移除流動性時會將用戶添加的代幣返回。由於Polygon和EVM鏈的同構性,在MATIC轉帳給合約時觸發了重入邏輯。
進一步分析發現,問題出在getUnderlyingPrice函數的實現上。該函數涉及多個未開源的合約,增加了分析難度。然而,通過檢查存儲槽和調用棧,我們可以推斷出關鍵變量的值和函數調用路徑。
攻擊的核心在於get_virtual_price函數的返回值在重入前後發生了顯著變化。這個變化與self.D變量的更新時機有關。正常情況下,self.D應該在轉帳完成後更新,但在此次攻擊中,由於重入的發生,導致價格計算出現錯誤。
remove_liquidity函數的執行流程包括:1) 銷毀用戶LP代幣;2) 發送質押資金給用戶;3) 更新self.D值。攻擊者在第二步進行重入,利用未及時更新的self.D值進行借貸,從而獲取了不當利益。
值得注意的是,雖然remove_liquidity函數使用了@nonreentrant('lock')裝飾器來防止重入,但由於攻擊者重入後進入了其他合約進行借貸,這個重入鎖並未起到預期效果。
這次攻擊暴露了智能合約中變量更新時機的重要性。爲提高安全性,建議項目方採取以下措施:
通過實施這些最佳實踐,可以顯著提升智能合約的安全性和穩定性,爲Web3生態系統提供更可靠的基礎設施。