批准錯誤漏洞:分析 HedgeyFinance 攻擊

本文為機器翻譯
展示原文

2024 年 4 月 19 日,HedgeyFinance 遭受攻擊,造成估計損失 4,500 萬美元。 Campaign 合約中的設計錯誤允許攻擊者直接竊取大量資產。

在本部落格中,我們將分析以太坊網路上的第一次攻擊,以幫助使用者預防自己專案中的類似漏洞。

感謝您閱讀 Verichains!免費訂閱以接收新帖子並支持我的工作。

概述

攻擊者:

https://etherscan.io/address/0xded2b1a426e1b7d415a40bcad44e98f47181dda2

脆弱合約:

https://etherscan.io/address/0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

交易攻擊:

https://etherscan.io/tx/0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517

https://etherscan.io/tx/0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739

漏洞利用分析

在第一筆交易之後,攻擊方法出乎意料地簡單。攻擊者藉用大量USDC來建立鎖定活動,然後立即取消活動。

在第二筆交易中,攻擊者觸發合約將USDC直接從 HedgeyFinance 合約轉移到自己的地址。

第二筆交易的簡單性強烈表明,該漏洞利用的根本原因在於步驟 1 中的createLockedCampaigncancel函數。

研究 createLockedCampaign 函數

在建立鎖定活動期間,擁有者可以指定 tokenLocker。該 tokenLocker 在獲得批准後,可以轉出與新創建的活動相關的所有代幣。此行為似乎是一個潛在的漏洞。

雖然函數註釋表明意圖阻止任何人要求額外代幣,但它似乎僅限制對獎勵代幣的存取。至關重要的是,該功能不會撤銷上一步中授予的批准。這種疏忽允許攻擊者撤回活動中所有質押的代幣,同時保留先前步驟的批准。

透過這種持續的批准,攻擊者可以輕鬆地將代幣從合約轉移到任何所需的位置。

透過逆向分析createLockedCampaign函數,可以明顯看出審批邏輯有缺陷。授予鎖定活動隨時轉出代幣的能力與預期行為相矛盾。這項設計缺陷是 HedgeyFinance 漏洞的根本原因。

學過的知識

Hedgefinance 漏洞凸顯了未能在智能合約中仔細管理代幣批准的嚴重後果。以下是重點:

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論