事件背景
經典 有符號/無符號整數轉換漏洞:
- 函數 DaiDripsHub.give(address,uint128) 接受無符號 uint128 amt;
- 內部把 amt 轉成 int128 做餘額加減;
- 缺少 amt <= type(int128).max 檢查;
- 當 amt 接近 2^128 時,轉換後變成 負數(或極端有符號值),內部會計被破壞,攻擊者可據此提取不應得的 DAI。
事件經過
- 攻擊者構造畸形 amt 調用 give。
- 類型轉換溢出/繞界,內部餘額邏輯失效。
- 攻擊者提走約 24,882.99 DAI。
- SlowMist 給出根因說明;完整攻擊者地址與 Tx 未在公開摘要齊備 → 不猜補。
資金流向
見事件經過;無獨立可拆資金路徑時以地址與交易章節為準。
金額口徑
24,882.99 DAI
證據邊界
完整地址/Tx 不足時不猜補。
處置狀態
協議損失約24,882.99 DAI;根因明確為無邊界檢查的有符號類型轉換。