当前位置:首页 > 资讯 >

黑客开启狂飙模式:Platypus闪电贷攻击,盗走900万美元

黑客开启狂飙模式:Platypus闪电贷攻击,盗走900万美元

北京时间 2023 年 2 月 16 日凌晨,Avalanche 上的 DeFi 平台Platypus Finance遭遇闪电贷攻击,被盗走约900 万美元。攻击者部署了未经验证的合约,并利用闪电贷消耗了协议中的约 900 万美元。

攻击步骤

三次攻击,我们将选择金额最大的用来解析流程:

1. 攻击者将闪电贷获得的 4400 万 USDC 存入 Platypus USDC 池,并获得 4400 万 LP-USDC。

2. 攻击者将这 4400 万 LP-USDC 存入 MasterPlatypusV 4 。

3.该平台的借贷限额被设置为 95% ,这意味着攻击者最多可以用他们的 4400 万 LP-USDC 借到大约 4180 万 USP。

4. 攻击者在 PlatypusTreasure 合约中调用了borrow来铸造大约 4180 万 USP。

5. 由于借来的 USP 数额没有超过限额,协议的isSolvent值将总是返回 true。

6. 由于isSolvent变量为 true,攻击者可以调用EmergencyWithdraw来提取其质押的 4400 万 LP-USDC 全部资金。

7. 攻击者在支付了移除流动性的手续费用后,总共提取了 43, 999, 999, 921, 036 USDC(LP-USDC)。

8. 攻击者偿还了闪电贷款,并以多个稳定币的形式获利约 850 万美元。

  • 2, 425, 762 USDC

  • 1, 946, 900 USDC.e 

  • 1, 552, 550 USDT

  • 1, 217, 581 USDT.e

  • 687, 369 BUSD

  • 691, 984 DAI.e 

在撰写本文时,共大约 900 万美元被盗。其中攻击者部署的合约中仍有价值 850 万美元的资产;171, 000 美元在攻击者的地址(EOA);399, 400 美元在一个 Aave 池。

漏洞分析

造成该事件的漏洞在于 MasterPlatypusV 4 合约的函数emergencyWithdraw中偿付能力检查出现问题。其偿付能力检查没有考虑到用户的负债价值,而只检查了债务金额是否达到最大限额。偿付能力检查通过后,合约允许用户提取所有存入的资产。

函数platypusTreasure.isSolvent会返回两个值。第一个值是solvent,是一个决定了用户的债务金额是否低于借款限额的布尔值。第二个值debtAmount则显示用户所欠的债务金额。

如果用户的债务额不超过用户抵押物的 95% 的借款限额,那么solvent的值将为 true。

然而,在emergencyWithdraw函数中,偿付能力检查只验证了布尔值solvent,而忽略了债务金额。这意味着,如果用户的债务不超过借款限额,用户可以调用函数emergencyWithdraw来提取所有存入的抵押品。

黑客开启狂飙模式:Platypus闪电贷攻击,盗走900万美元

通过安全审计,可以发现该设计缺陷问题。

本次事件的预警已于第一时间在 CertiK 官方推特进行了播报。欢迎大家随时关注 CertiK 官方推特,获取更多与漏洞、黑客袭击以及 Rug Pull 相关的社群预警信息。

猜你喜欢

关注我们

微信二维码

微信