代碼沒問題也被盜,2026最大黑客案禍首「DVN配置漏洞」是怎麼回事?
事件概要
2026年4月18日,Kelp DAO 的流動性再質押協議在幾個小時內被攻擊者從跨鏈橋裡抽走了116,500枚rsETH,按當時價格約合2.93億美元。整個流程高效得有點反常,從偽造跨鏈消息到把贓款分散在Aave V3、Compound V3和Euler三個借貸協議裡借出真實資產,攻擊者在當天就帶著2.36億美元的WETH撤場了。Aave、SparkLend、Fluid隨即全面凍結rsETH市場。
這是2026年迄今最大的DeFi攻擊事件。
攻擊關鍵點:DVN配置漏洞
但有一件事讓這次攻擊區別於大多數黑客事件。Kelp DAO的智能合約代碼沒有任何漏洞。參與調查的安全研究員@0xQuit在X上寫道,「從我目前掌握的情況來看,這是兩個問題的疊加:1-of-1的DVN配置,以及DVN節點本身被攻破。」LayerZero官方在聲明中也沒有提合約代碼,把問題定性為「rsETH漏洞」而非「LayerZero漏洞」。
2.93億美元,不在任何一行代碼裡。它藏在一個部署時填錯的配置參數裡。
配置層漏洞的審計盲區
DeFi安全審計的通用邏輯是:找合約,讀代碼,找漏洞。這套邏輯在應對代碼邏輯漏洞時運作得相當順暢,Slither、Mythril這類工具對重入攻擊、整數溢出這類已知模式的檢測能力都比較成熟。近兩年大力推廣的LLM輔助代碼審計,對業務邏輯漏洞(如閃電貸套利路徑)也有一定能力。
但這張矩陣裡有兩行是紅色的。
配置層漏洞在工具審計裡屬於結構性盲區。Kelp DAO出問題的地方不在.sol文件裡,而在協議部署時寫入的一個參數——DVN閾值。這個參數決定跨鏈消息需要經過幾個驗證節點確認,才被視為合法。它不進代碼,不進Slither的掃描範圍,也不進Mythril的符號執行路徑。據Dreamlab Technologies的對比研究,Slither和Mythril在受測合約裡分別檢測出5/10和6/10的漏洞,但這個成績建立在「漏洞在代碼裡」這個前提上。據IEEE的研究,即使在代碼層面,現有工具也只能檢測到8%-20%的可利用漏洞。
從現有審計範式角度來說,不存在能「檢測DVN閾值是否合理」的工具。如果要檢測這類配置風險,需要的不是代碼分析器,而是一份專項配置清單:「所用跨鏈協議的DVN數量≥N?」、「是否有最低閾值要求?」這類問題目前沒有標準化工具覆蓋,甚至沒有廣泛認可的行業規範。
DVN機制與安全配置
DVN是LayerZero V2的跨鏈消息驗證機制,全稱Decentralized Verifier Network(去中心化驗證網絡)。它的設計哲學是把安全決策權交給應用層:每個接入LayerZero的協議,可以自己選擇需要幾個DVN節點同時確認,才放行一條跨鏈消息。
這個「自由度」產生了一個光譜。
Kelp DAO選了光譜最左端1-of-1,只需要一個DVN節點確認。這意味著容錯率是零,攻擊者只需要攻破那一個節點,就能偽造任意跨鏈消息。與之對比的是Apechain,同樣接入LayerZero,但配置了兩個以上的必需DVN,此次事件中沒有受到波及。LayerZero官方在聲明裡的措辭是「所有其他應用仍然安全」,這句話的潛臺詞是:安全不安全,取決於你選了哪個配置。
正常的行業建議是至少2-of-3,攻擊者需要同時攻破兩個獨立的DVN節點才能偽造消息,容錯率提升到33%。高安全性配置如5-of-9,容錯率可以到55%。
問題在於,外部觀察者和用戶看不到這個配置。同樣叫做「由LayerZero支持」,背後可能是0%容錯,也可能是55%容錯。兩者在文檔裡都叫DVN。
歷史類比與行業反思
資深加密投資人、曾經歷過Anyswap事件的Dovey Wan在X上直接寫道:「LayerZero的DVN竟然是1/1 validator……所有跨鏈橋都應該立刻做一次全面安全審查。」
2022年8月,Nomad跨鏈橋被人發現了一個漏洞。有人複製了第一個攻擊交易,稍作修改,發現也成功了——於是幾百個地址相繼開始複製,在幾個小時內把1.9億美元抽乾了。
Nomad的事後分析寫道,漏洞來源是「一次例行升級時,將trusted root初始化為0x00」。這是一個配置錯誤,發生在部署階段。Merkle證明驗證邏輯沒有問題,代碼本身沒有問題,問題是一個初始值填錯了。
這一次和Nomad加在一起,配置/初始化類漏洞已經造成了約4.82億美元的損失。在整個跨鏈橋被盜歷史裡,這個類別的規模已經可以和密鑰洩露類(Ronin 6.24億美元、Harmony 1億美元、Multichain 1.26億美元,合計約8.5億美元)並列。
但代碼審計行業的產品設計從來不是針對這個類別的。
行業裡討論最多的還是代碼邏輯漏洞。Wormhole 3.26億美元因簽名驗證繞過被黑、Qubit Finance 8000萬美元因虛假存款事件被盜。這些案例有完整的漏洞分析報告、有CVE編號類比、有可復現的PoC,適合審計工具的訓練和優化。配置層的問題不寫在代碼裡,很難進入這個生產循環。
值得注意的一個細節是,兩次配置類事件的觸發方式截然不同。Nomad是在例行升級中不小心填了一個錯誤初始值,屬於失誤。Kelp DAO的1-of-1則是一個主動配置選擇——LayerZero協議沒有禁止這個選項,Kelp DAO也沒有違反任何協議規則。一個「合規」的配置選擇,和一個「失誤」的初始值,最終都指向了同一個後果。
攻擊執行邏輯
此次攻擊的執行邏輯很簡單,一條偽造的跨鏈消息告訴以太坊主網,「另一條鏈上有人已經鎖定了等值資產」,觸發主網鑄造rsETH。鑄出來的rsETH本身沒有實際背書,但它的鏈上記錄是「合法的」,可以被借貸協議接受為抵押品。
攻擊者隨即把116,500枚rsETH分散到Aave V3(以太坊和Arbitrum)、Compound V3和Euler,借出了合計超過2.36億美元的真實資產。據多方報道,Aave V3單獨面臨的壞賬估值約為1.77億美元。Aave的安全模塊Umbrella可用於吸收壞賬的WETH儲備約為5000萬美元,覆蓋率不到三成,剩餘部分將由aWETH質押者承擔。
這筆賬最後落到了那些只是想賺一點WETH利率的人身上。
後續進展
LayerZero官方截至發稿仍在與安全應急響應組織SEAL Org聯合調查,表示將在獲得全部信息後與Kelp DAO共同發佈事後分析報告。Kelp DAO表示正在進行「主動補救」。
2.93億美元的漏洞不在代碼裡。「審計通過」這四個字,沒有覆蓋那個參數所在的位置。
