ether.fi舊隊列漏洞被盜15.45枚ETH
ether.fi遺留AtomicQueue合約遭利用,約15.45枚ETH被轉走。根因是solve()對調用方傳入的solver參數沒有訪問控制。
該函數既不校驗solver等於msg.sender,也不要求籤名、註冊或授權。攻擊者先用updateAtomicRequest()寫入惡意AtomicRequest,再把受害者地址強行指定爲solver;隊列隨後對受害者調用finishSolve,執行want.transferFrom(solver, users[i], assetsToUser),抽走其此前授予合約的ERC-20額度。被盜的是用戶殘留授權,不是金庫本金。
公開技術細節顯示,被利用的是Veda搭建的舊版提款隊列,而非現行Liquid金庫。攻擊者另內部署近乎無價值的代幣,僞造報價單,用包裝合約與solver合約在單筆交易中完成抽取,鏈上記錄約15.4536 ETH,Gas費約0.000685 ETH。資金經去中心化交易所兌換後,拆成10、1、0.1 ETH多筆進入混幣器。ExVul先發公開警報,SlowMist稱已事先私下通知ether.fi團隊,並公佈攻擊者地址與漏洞合約地址。
正常流程裏,用戶把金庫份額代幣liquidETH掛單換成目標資產,由求解器調用solve()成交。此次solve(offer, want, users[], runData, solver)把solver當成可任意填寫的參數,於是任何仍對合約留有授權的地址都能被點名當“求解器”。協議側回應口徑包括全額賠付受影響用戶。
市場機制上,這是授權存量被定價,不是TVL被打穿。賣盤來自仍掛着無限額或未撤銷授權的地址;買盤是漏洞獵手用廉價假代幣換真實額度。受益方是能掃描殘留allowance的攻擊者,以及事後承接賠付與合約退役的團隊;承壓方是把“授權給協議”當成一次性完成動作的用戶。資金從用戶錢包經transferFrom進入攻擊合約,再進混幣器,協議金庫本身未被直接抽空。
鏈上補充:漏洞合約與攻擊地址已公開可查;事件落在遺留隊列而非主質押路徑,說明舊求解器接口在主產品迭代後仍保持可調用狀態。
來源:公開信息
ABAB AI 解讀
ether.fi把流動再質押做成主產品後,提款與成交被拆成隊列加求解器。Veda留下的AtomicQueue把solver寫成調用參數,卻沒把“誰有權當solver”寫死。這與2022年Rubic路由白名單失誤、Multichain permit被繞,同屬授權面攻擊:用戶以爲批准的是協議,實際批准的是任意調用者可借用的額度。限時授權方案討論多年仍未成默認,於是舊approve成爲可庫存的攻擊原料。
資本路徑是掃描器經濟。攻擊者成本是一筆低Gas複合交易加一枚空氣代幣;收益取決於鏈上還能掃到多少未撤銷額度。協議側用賠付把聲譽損失換成運營開支,避免15 ETH事件演變成擠兌敘事。資源調動是安全公司先私信再公開、項目組承諾墊付,而不是立刻凍結主金庫。動機很明確:主TVL不能因爲遺留接口的授權漏洞出現折價。
類比對象是無數“已升級、舊合約未關”的DeFi事件:路由器換了,allowance還指向舊地址。行業階段處於控制期的尾部清理——新金庫、新求解器已經上線,舊隊列因仍有掛單或授權而無法簡單自毀。誰先做授權收口,誰少付賠付;誰把solver做成開放參數,誰給掃描器供貨。
結構判斷屬於技術替代未完成導致的定價權錯位。機制是:ERC-20授權是持久權利,求解器身份卻是瞬時參數。兩者在同一函數里相遇,權利就被參數劫持。15.45 ETH是抽樣,真正被定價的是全市場未過期的approve餘額。
ABAB News · 認知定律
授權給協議,等於授權給協議的舊入口
漏洞金額小,授權庫存大
求解器不驗身,額度就變成公共品