事件背景
经典 有符号/无符号整数转换漏洞:
- 函数 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;根因明确为无边界检查的有符号类型转换。