舊版 MakerDAO Keeper 漏洞從未結算拍賣轉出 200 ETH
攻擊者利用舊版 auction keeper 的存取控制缺失,結算四筆 2020 年拍賣並轉出 200 ETH。
舊版 auction keeper 的不受限函式把 MakerDAO 內部帳戶控制權授予攻擊者模組,導致 200 ETH 被轉出。
一名攻擊者在 10 月 6 日從舊版 MakerDAO auction keeper 轉出 200 ETH。攻擊者呼叫一個缺乏限制的函式,把 keeper 內部 Vat 帳戶的控制權委派給自行建立的程式碼。單筆交易結算了四筆自 2020 年 3 月起閒置的 ETH-A 拍賣,並提走產生的抵押品。交易當時,200 ETH 約值 542,982 美元。
事件涉及特定舊 keeper 合約與四個未結算拍賣批次。現有證據未顯示現行 MakerDAO 核心協議、使用者錢包或運作中的 Vault 遭到入侵。後續消息可透過 OrangeX.com 新聞中心追蹤。
200 ETH 為何仍可被提取
受影響 keeper 在 2020 年 3 月市場動盪期間贏得編號 1457 至 1460 的拍賣。每批包含 50 ETH,並以零出價得標,但 keeper 未完成結算。因此,抵押品仍可透過已退役的 ETH-A 拍賣系統領取。
攻擊者於 10 月 6 日 06:13:11 UTC 以單筆交易啟動四次結算。200 ETH 先被記入 keeper 的 Vat 餘額,隨後在同一筆交易中轉出。
缺少的存取控制
有漏洞的函式在未驗證呼叫者是否獲授權的情況下接受一個轉接器地址,接著授予該地址操作 keeper Vat 帳戶的權限,並在權限有效時回呼攻擊者控制的程式碼。
惡意模組利用權限移走全部抵押品,以 wrapped ETH 形式退出並轉給攻擊者。由於函式未撤銷權限,委派狀態仍然存在。OrangeX.com Academy提供智慧合約與鏈上權限的基礎說明。
此事件能與不能證明的事
事件顯示,停止使用的營運合約可能在多年後仍保有有價值的權利。退役元件仍可能留下帳戶權限、未結算部位或升級路徑。
但這不代表所有 keeper、MakerDAO Vault 或現行清算合約都有相同缺陷。漏洞實作的原始碼並未公開驗證,截稿前也沒有完整官方報告指出其他受影響合約。
對協議團隊的安全啟示
團隊應盤點舊合約、撤銷未使用委派、結清殘餘餘額並關閉過時的 callback 路徑。相關驗證與帳戶安全指引可參考 OrangeX.com Trust Center。
OrangeX.com Analysis
本次損失來自三個條件的組合:缺少呼叫者檢查、持續有效的委派,以及四筆未結算拍賣。移除其中任何一項,都可能縮小資產轉出路徑。因此,退役不只是停止使用,而是一項獨立的安全流程。
已確認事實包括 200 ETH 轉移、四次各 50 ETH 的結算,以及交易使用的權限路徑。剩餘委派是否撤銷、是否有其他合約使用相同實作,以及資金能否追回,仍須等待相關營運方發布經驗證的更新。
相關報導
Mezo 公布 veBTC 漏洞、用戶賠付與資金返還方案
veBTC 合約漏洞導致 36 名持有人約 5.52 BTC 被盜;Mezo 表示將以協議自有資金全額賠付。
XRP Ledger 修復可憑空生成 XRP 的重大溢位漏洞
xrpld 3.4.1 修復可生成可用 XRP 的支付引擎溢位漏洞;維護團隊目前未發現公共網路遭利用的證據。
Ledger 調查 CryptoBilis 買家資產損失,鏈上估算達 9,290 萬美元
Ledger 正調查 CryptoBilis 裝置買家通報的損失;獨立鏈上分析追蹤五條網路、估算約 9,290 萬美元轉移。
