流動性再質押協議 ether.fi 的提款合約 AtomicQueue,9 月 11 日下午遭到攻擊,11 個地址的資產被轉走,攻擊者換得 15.45 枚 ETH,約 3.8 萬美元。動區拆解攻擊交易發現,受害地址全是帶有合約程式碼的智慧錢包,其中 7 個是經 EIP-7702 升級的一般錢包。
(前情提要:EIP-7702 首次大規模實戰失利:QNT、ETH 遭盜,Pectra 帳戶抽象機制淪釣魚溫床)
(背景補充:以太坊基金會推明碼簽名 Clear Signing :告別盲簽地獄,錢包交易不再像看天書)
重點摘要
- ether.fi 提款合約 9 月 11 日遭駭,攻擊者換得 15.45 枚 ETH
- 11 個受害地址全是智慧錢包,其中 7 個經 EIP-7702 升級
- 攻擊者 8 分鐘內把 15.5 枚 ETH 存進 Tornado Cash
流動性再質押協議 ether.fi 的提款合約 AtomicQueue,台灣時間 9 月 11 日下午 3 點 20 分遭到攻擊。11 個地址的資產被轉走,攻擊者換得 15.45 枚 ETH,以當下幣價計算約 3.8 萬美元。區塊鏈安全公司慢霧(SlowMist)傍晚發出警報,指漏洞出在合約沒有確認 solver 的身分。
🚨SlowMist TI Alert🚨
We first reached out to the https://t.co/8uHeElAucd team privately to responsibly disclose the issue before making any public statement.
💸 @ether_fi Loss: ~15.45 ETH
🔍 Root Cause: `AtomicQueue.solve()` lacks access control on the caller-supplied…
— SlowMist (@SlowMist_Team) September 11, 2026
AtomicQueue 是 ether.fi Liquid 金庫的提款排隊合約,Etherscan 標記為「ether.fi: Withdrawal Queue」。使用者要提款時,會把金庫份額代幣授權給這份合約,再掛出一筆「用多少份額換多少資產」的請求,由 solver(負責撮合成交的一方)完成交換,這份合約 2024 年 3 月部署,沒有暫停與升級功能,程式碼上線後就無法修改。
solver 欄位誰都能填
慢霧指出,合約的 solve() 函式讓呼叫者自己填 solver 地址,卻沒有檢查 solver 是不是呼叫者本人,也沒有簽章、登記或同意機制。動區讀取合約原始碼確認,solve() 成交時會先呼叫 solver 的 finishSolve()。接著合約會從 solver 地址,把請求方要換的代幣轉給請求方。
攻擊者先用 updateAtomicRequest() 替自己掛一筆請求,再把受害者的地址填成 solver。合約於是從受害者錢包轉出代幣給攻擊者,動用的是受害者先前授權給這份合約、還沒用完的額度。
受害的 11 個地址都是智慧錢包
動區拆解攻擊交易,9 個地址被轉走共 14.45 枚 LIQUIDETH,另 2 個地址被轉走 7.05 USDC。LIQUIDETH 是 ether.fi Liquid ETH 金庫的份額代幣,其中一個地址就被轉走 12.37 枚,占 LIQUIDETH 損失的 86%。攻擊者隨後在 Uniswap 把這些代幣全數換成 ETH。
這 11 個地址全都帶有合約程式碼。依區塊鏈瀏覽器 Blockscout 的標記,7 個是經 EIP-7702 升級的一般錢包,3 個是 Coinbase Smart Wallet,另 1 個是代理合約。EIP-7702 是以太坊 2025 年 5 月 Pectra 升級加入的功能,讓一般錢包地址可以掛上智慧合約的程式碼。
這是攻擊能成功的條件,合約呼叫 finishSolve() 時,對方如果是沒有程式碼的一般地址,交易會直接失敗。這 11 個錢包都接受了這個呼叫、沒有回傳錯誤,合約就繼續往下轉帳。同樣授權過這份合約,沒升級的一般錢包打不動,升級成智慧錢包的地址才會中招。
警報公開 22 分鐘後有人再試
攻擊者地址在攻擊前 13 分鐘,才從混幣器 Tornado Cash 領出 0.085 枚 ETH 當手續費。攻擊完成 3 分鐘後,它分 11 筆把 15.5 枚 ETH 存回 Tornado Cash,不到 5 分鐘就存完。
截至發稿,ether.fi 官方 X 帳號沒有針對這起攻擊發文。攻擊發生後到晚間 6 點 10 分,仍有 6 個地址在這份合約送出 8 筆新的提款請求。合約本身無法暫停或修改,錢包若已升級成智慧錢包、對這份合約的授權又還沒撤銷,這條攻擊路徑就仍然存在。
常見問題
ether.fi AtomicQueue 漏洞是怎麼被利用的?
solve() 讓呼叫者自填 solver 地址,卻不驗證身分。攻擊者把受害者填成 solver,合約就用對方先前的授權轉出代幣,11 個地址共損失約 15.45 枚 ETH。
一般錢包會被 ether.fi 這個漏洞盜走資產嗎?
這條路徑打不到沒有程式碼的一般錢包,合約回呼時交易會直接失敗。受害的 11 個地址全是智慧錢包,包括 7 個 EIP-7702 升級錢包與 3 個 Coinbase Smart Wallet。
📍相關報導📍
1 聰 WBTC 換走整池資產!Balancer V1 資金池爆精度漏洞,損失 23 萬美元

