SwapNet因輸入驗證漏洞導致資產流失,損失1340萬美元。

本文為機器翻譯
展示原文

區塊鏈安全公司 BlockSec 發佈了一份技術分析報告,分析了針對兩個去中心化金融協議的攻擊,這些攻擊造成了超過 1700 萬美元的損失。

去中心化交易所聚合商 SwapNet 在以太坊、 Arbitrum、Base 和幣安智能鏈上遭受了超過 1340 萬美元的損失,而管理集中流動性頭寸的 Aperture Finance 在同時發生但無關的事件中估計損失了 367 萬美元。

BlockSec 在其對 X 的分析摘要中指出:“由於輸入驗證不足,受害合約暴露了任意調用能力,攻擊者可以利用現有的代幣批准並調用 transferFrom 來竊取資產。”

該安全公司表示:“這些事件提醒我們,合同設計的靈活性必須與嚴格的調用限制之間取得平衡,尤其是在外部審查有限的閉源系統中。”

SwapNet漏洞背後究竟隱藏著什麼?

在 SwapNet 案例中,漏洞來自函數 0x87395540(),該函數對關鍵輸入缺乏適當的驗證。

攻擊者通過將預期的路由器或資金池地址替換為USDC等代幣地址,誘騙受害合約將代幣視為有效的執行目標。

這導致攻擊者控制的調用數據執行低級調用,使受害合約能夠執行允許攻擊者竊取所有已批准資產的調用。

該漏洞影響了 DeFi 交易所元聚合器 Matcha Meta 的用戶,這些用戶禁用了平臺的“一次性批准”設置,並直接向 SwapNet 合約授予了無限批准。

單筆損失最大的是一位用戶,損失金額約為1334 萬美元。總共有 20 位用戶受到影響。攻擊始於 Base 區塊鏈的第 41289829 個區塊,導致 SwapNet 在檢測到初始漏洞 45 分鐘後暫停了 Base 區塊鏈上的合約。隨後不久,SwapNet 也暫停了其他鏈上的合約;然而,在此期間,又有 13 位用戶在三條鏈上受到影響。

Aperture Finance也遭遇了類似的困境。

代表用戶管理Uniswap V3 流動性頭寸的 Aperture Finance 也受到了其函數 0x67b34120() 中同類漏洞的侵害。

當調用此函數時,內部函數 0x1d33() 使用用戶提供的調用數據執行底層調用,而不對調用目標或函數選擇器強制執行嚴格的約束。

這使得攻擊者能夠構建惡意調用數據,竊取 ERC-20 代幣以及Uniswap V3 認可的 NFT。

此次攻擊的目標是那些已授權使用“即時流動性管理”功能的用戶。

在一次典型的以太坊攻擊中,攻擊者創建了一個合約,僅用 100 wei 的ETH就調用了存在漏洞的函數。在將原生代幣封裝成 WETH 後,惡意調用了 WBTC.transferFrom() 函數,攻擊者通過指定自定義的交換輸出值,繞過餘額檢查,從而竊取已獲批准的代幣。

受影響的平臺正在進行哪些更改?

這些事件促使兩種協議重新評估其安全策略。首先,兩種協議都要求用戶使用 Revoke.cash 等工具撤銷授權。

Matcha Meta 表示,已禁用允許用戶關閉一次性審批功能的開關。同時,該公司已將 SwapNet 從其平臺移除,直至另行通知。該公司還表示:“我們絕不會為了追求自定義功能而犧牲安全性。”

Aperture Finance公司表示,已禁用所有受影響的Web應用程序功能。關於追回資金的工作,該公司表示:“我們正與頂尖的取證安全公司密切合作,並與執法部門協調追查資金流向。”同時,該公司還表示,正在建立渠道協商資金返還事宜。

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