慢霧安全團隊建議專案方在開發中實施嚴格的參數驗證機制。

作者: Sissice,慢霧安全團隊

背景

2024 年 4 月 24 日,根據慢霧安全團隊情報,BSC 鏈上的 YIEDL 計畫遭攻擊,攻擊者獲利約 30 萬美元。慢霧安全團隊對此攻擊事件展開分析並將結果分享如下:

圖片
(https://twitter.com/SlowMist_Team/status/1782962346039898473)

相關資訊

攻擊者地址:

0x322696471792440499b1979e0a440491e870667a

被攻擊合約地址:

0x4edda16ab4f4cc46b160abc42763ba63885862a4

部分攻擊交易:

0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec

0x3629ad588ac120163792e92b6c43bd4bdc5bf35cac66eb7f3a0267df93abc849

0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457

0x5e468cba495e5f6165418fb9d87d824309c54261055425f33f588dd3b3abbcea

0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d

0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9

0x2e3d4332f66a334e0170187011ed673dc222f95bf4443b618e08f8052437ef7a

0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d

0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f418f86a6ab6ea38b6f5b

0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021

攻擊核心

本次事件的攻擊核心是利用合約處理 redeem 函數呼叫時未能充分驗證使用者輸入的外部參數。此參數是控制資產兌換的關鍵數據,通常包含特定的交易指示或路由資訊。攻擊者透過惡意建構此外部參數,實現了未授權的資產轉移。

交易分析

攻擊者多次調用 redeem 函數,申請贖回數量為 0 的資產,此行為本身看似無害,因為贖回數量為零時通常不會觸發任何實際的資金流動:

圖片

但是跟進 redeem 函數可以發現,該函數會遍歷合約允許的資產列表,並在當前資產不為用戶希望接收的資產時,會根據傳入的 dataList 參數解析並外部調用 1inch Router 中對應的函數來執行資產兌換操作。

圖片

而由於此處傳入的 dataList 並未經過檢查和驗證,使得攻擊者可以建構惡意的值去執行 1inch Router 合約的 unoswapTo 函數來進行任意可控的兌換代幣操作。

圖片

結果,Yiedl BULL 合約中的 WBNB-ADA Token 被兌換為 BNB 至攻擊者的地址。

圖片

透過這種方式,攻擊者無需實際擁有任何贖回份額,即可觸發由 dataList 參數控制的代幣兌換操作,在不消耗自身資產的情況下,多次調動合約資金,獲利離場。

總結

本次攻擊的核心在於函數未能充分驗證使用者輸入的 dataList 參數,導致攻擊者可以建構惡意的外部資料並利用 1inch 套走合約中的代幣。慢霧安全團隊建議專案方在開發中實施嚴格的參數驗證機制,尤其是在涉及合約中的資金操作時,要確保所有外部呼叫均符合預期的行為規範,並對合約的邏輯進行徹底的安全審計,避免類似事件再次發生。

免責聲明:作為區塊鏈資訊平台,本站所發布文章僅代表作者及來賓個人觀點,與 Web3Caff 立場無關。文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。