Bunni 指出智能合约舍入误差是造成 840 万美元闪电贷漏洞的原因

本文为机器翻译
展示原文

去中心化交易所 Bunni 于周二发布了一份关于该漏洞的事后分析报告,该漏洞导致 840 万美元的损失。

根据报告,该漏洞影响了两个池——Unichain 上的 weETH/ ETH对和以太坊主网的USDC/ USDT对。Bunni

认为,智能合约中用于在提款期间更新空闲余额的舍入方向存在问题,这是漏洞的根本原因。

报告称:“漏洞的关键是由于小额提款导致的流动性错误减少。”“它源于 [BunniHubLogic::withdraw()] 中处理池子空闲余额更新的这行代码。”

Bunni 补充说,攻击者利用这个错误发起了闪电贷攻击,操纵了池子价格和流动性。

首先,他们通过闪电贷借入 300 万美元USDT ,并进行多次掉期操纵价格,导致可用的USDC降至仅剩 28 wei。随后,攻击者利用舍入错误进行了44次小额提现,进一步耗尽了USDC余额,并大幅降低了矿池的总流动性。

报告称,在最后一步,攻击者执行了一次大额掉期交易,抬高了价格变动,然后以操纵的价格进行了一次反向掉期交易。

“总而言之,所有涉及的舍入方向在单独操作时都是安全的,但当涉及多个操作时,就会导致漏洞利用,”Bunni表示,并补充说他们已经更新了舍入代码以修复该漏洞。

在区块链安全公司Cyfrin进行分叉测试并确认其安全性后,该平台已恢复所有网络的提现功能。但是,存款、掉期和其他功能仍然暂停。

“我们仍在探索需要哪些修复措施才能使Bunni恢复安全,”该平台表示。“更改空闲余额更新的舍入方向可以阻止当前的漏洞利用,但目前尚不清楚此更改是否会引入新的攻击向量。”

Bunni 团队表示,他们追踪到被盗资金来自两个钱包,但由于资金是通过加密货币混合器 Tornado Cash 转移的,因此无法识别攻击者。Bunni 将向攻击者提供 10% 的资金作为赏金,以追回剩余资金,同时还与执法部门合作,并要求中心化交易所冻结相关账户。

展望未来,Bunni 表示将进一步开发测试框架,以全面恢复平台。


来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论