重點摘要:
- 攻擊者利用 join 數學中的四捨五入漏洞,從以太坊上的 Balancer V1 池提走了約 23.4 萬美元。
- 該漏洞利用以 1 satoshi 的存款鑄造了 4,408.8 BPT,並透過 Spark、Aave、Morpho 和 Uniswap V3 的閃電貸進行資金挹注。
- Balancer 於 8 月 31 日警告 LP,指出不可變更且無人維護的 V1 程式碼可能危及資金,分叉池仍暴露在風險之中。
重點摘要:

SlowMist 表示,一名攻擊者利用舊版 join 數學中的四捨五入漏洞,從以太坊上的 Balancer V1 池提走了約 23.4 萬美元。
區塊鏈安全公司在 8 月 31 日發布的威脅警報中指出,該漏洞位於 joinswapPoolAmountOut 函數中,此函數允許呼叫者指定他們想要的池代幣,而非所需的存款金額。SlowMist 表示,攻擊者透過重複的公開互換將池中的 WBTC 儲備壓縮至接近零,然後操縱該函數計算出約 1 satoshi(比特幣的最小單位)的所需輸入,同時鑄造了所請求的全部 4,408.8 BTP。攻擊者按比例退出以提取 DPI、USDC、WETH 和 WBTC,並利用來自 Spark、Aave、Morpho 和 Uniswap V3 的閃電貸為該次漏洞利用提供資金。
SlowMist 識別出促成此次攻擊的三個缺失檢查:沒有最低有效輸入、沒有最低池餘額以及沒有相對誤差驗證。該公司表示,合約的 _MIN_BALANCE 常量僅在 bind 和 rebind 函數中強制執行,這些函數用於管理池中代幣的添加和調整,而非在 join 路徑中執行。攻擊者地址為 0x338c7ec9befbb451d66fd8a468c32184f5689a41,易受攻擊的合約位於 0x2257aaac34bcb27900291f7b84ee2565a6cbac57。
Balancer 於 8 月 31 日警告流動性提供者,其舊版 V1 合約中的漏洞可能危及 LP 資金,並敦促從受影響的池中撤資。V1 程式碼庫於 2020 年首次部署,屬不可變更且不再積極維護,開發重點已轉向 V3,後者在每個算術運算中都實施了明確的四捨五入控制。
此事件與 2025 年 11 月那次從六個網路的 Balancer V2 Composable Stable Pools 竊取約 1.28 億美元的漏洞利用不同,儘管兩者皆源於定點算術中偏向呼叫者而非池的下取整。V1 BPool 合約是當代被分叉最廣泛的 DeFi 基礎設施之一,相同的 join 和 exit 數學現已在與 Balancer 無關且沒有共享安全流程的程式碼庫中運行。根據 DarkNavy 的技術分析,6 月時一名攻擊者利用 Polygon 上 Ocean Protocol BPool 克隆在單邊 join 和 exit 會計中的邏輯錯誤進行了攻擊。
兩個問題決定了任何持有低於 18 位小數代幣(如 WBTC 或 USDC)的池是否暴露於風險之中:joinswapPoolAmountOut 是否可被呼叫,以及儲備是否能透過公開互換被推向零。SlowMist 表示,對兩者都回答「是」的池就具備了此次攻擊所需的條件。由於 V1 合約不可變更且無人維護,不會有修補程式發布——流動性提供者唯一的保護措施是在相同的數學再次遭到利用之前,從受影響的池中撤資。
本文僅供參考,不構成投資建議。