鸭嘴兽攻击利用了不正确的代码排序,审计员声称

免责声明:文章已更新,以反映 Omniscia 没有审核 MasterPlatypusV4 合约的版本。 相反,该公司在 1 年 21 月 5 日至 2021 月 XNUMX 日审核了 MasterPlatypusVXNUMX 合约的一个版本。

8 万美元的 Platypus 闪电贷攻击之所以成为可能,是因为代码顺序错误, 根据 鸭嘴兽审计员 Omniscia 的尸检报告。 审计公司声称他们审计的版本中不存在有问题的代码。

根据该报告,Platypus MasterPlatypusV4 合约“在其紧急撤回机制中包含一个致命的误解”,这使得它“在更新与股权头寸相关的 LP 代币之前执行偿付能力检查”。

该报告强调,emergencyWithdraw 函数的代码具有防止攻击的所有必要元素,但这些元素只是以错误的顺序编写,正如 Omniscia 解释的那样:

“这个问题可以通过重新排序 MasterPlatypusV4::emergencyWithdraw 语句并在用户的金额输入设置为 0 后执行偿付能力检查来防止,这将阻止攻击发生。”

Omniscia 在 1 年 21 月 5 日至 2021 月 XNUMX 日期间审计了 MasterPlatypusVXNUMX 合约的一个版本。但是,该版本“不包含与外部 platypusTreasure 系统的集成点”,因此不包含顺序错误的代码行。

值得注意的是,在 Omniscia 进行审计时,被利用的代码并不存在。 Omniscia 的观点暗示,开发人员必须在审计完成后的某个时刻部署了新版本的合约。

相关新闻: Raydium 公布黑客攻击细节,建议对受害者进行赔偿

审计员声称 Avalanche C-Chain 地址 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 的合约实施是 剥削. 该合约的第 582-584 行似乎在 PlatypusTreasure 合约上调用一个名为“isSolvent”的函数,第 599-601 行似乎将用户的金额、因子和奖励债务设置为零。 但是,在调用“isSolvent”函数后,这些数量将设置为零。

鸭嘴兽团队 确认 16 月 XNUMX 日,攻击者利用了“USP 偿付能力检查机制中的缺陷”,但该团队最初并未提供更多细节。 审计员的这份新报告进一步阐明了攻击者可能如何完成攻击。

鸭嘴兽团队于 16 月 XNUMX 日宣布, 发生攻击. 它试图联系黑客并获得返还资金以换取漏洞赏金。 袭击者 使用闪贷 执行漏洞利用,这类似于在 Defrost Finance漏洞利用 25 年 2022 月 XNUMX 日。