freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

闪电贷攻击+业务逻辑漏洞:Platypus Finance事件分析
SharkTeam 2023-02-17 19:51:16 114725
所属地 江苏省

北京时间2023年2月17日凌晨,Avalanche 上的 DeFi 平台Platypus Finance遭遇闪电贷攻击,被盗走约850 万美元。SharkTeam第一时间对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

1676634260_63ef689404577b982d3ce.png!small

、事件分析

攻击者地址:0x67AfDD6489D40a01DaE65f709367E1b1D18a5322

Avalanche攻击交易:0x1266a937c2ccd970e5d7929021eed3ec593a95c68a99b4920c2efa226679b430

攻击流程:

1.首先,攻击者(0x67AfDD64)通过闪电贷方式,从Aave上贷了44,000,000个USDC。然后,将所贷的USDC全部存入USDC池中,同时获得相等数量的LP-USDC。

1676634264_63ef6898701a7aeda3b84.png!small

2.攻击者(0x67AfDD64)将44,000,000个LP-USDC存入MasterPlatypusV4合约,合约地址为:0xc007f27b757a782c833c568f5851ae1dfe0e6ec7。

1676634268_63ef689c2bd18e19950a4.png!small

3.此时Platypus Finance平台抵押比率为4.92%,攻击者(0x67AfDD64)将44,000,100.592104个LP-USDC抵押并且借得41,794,533.64个USP。

1676634272_63ef68a0be807b74ab29f.png!small

4.由于攻击者(0x67AfDD64)抵押LP-USDC借来的USP数额没有超过平台的限额(95%),MasterPlatypusV4. emergencyWithdraw函数中的isSolvent变量总是为true。因此,攻击者(0x67AfDD64)可以提取抵押的LP-USDC。

5.攻击者(0x67AfDD64)移除流动性后,成功提取43,999,999个LP-USDC。

1676634277_63ef68a5af0077256b722.png!small

6.攻击者通过swap方法去获得多个稳定币。

1676634283_63ef68ab14a55d3679af9.png!small

7.最后攻击者偿还了闪电贷款,总共获利约为850万美元。

漏洞原因:

(1)MasterPlatypusV4. emergencyWithdraw函数中的isSolvent变量值总是true。

1676634287_63ef68afa428ea537013a.png!small

(2)在PlatypusTreasure(0xbcd6796177ab8071f6a9ba2c3e2e0301ee91bef5)合约中,isSolvent函数进一步调用内部封装函数_isSolvent。

1676634290_63ef68b212d1653e462ad.png!small

(3)在_isSolvent函数中,solvent 的值来自于debtAmount <= _borrowLimitUSP(_user, _token)。debtAmount 是借贷金额,_borrowLimitUSP是借贷限额。因此,solvent 恒定为true。

1676634296_63ef68b8d169fd659c1b3.png!small

截至2023年2月17日16时,攻击者钱包拥有多种稳定币,数额约为850万美元。

1676634300_63ef68bc8f8f2f70b6e1f.png!small

事件总结:

本次事件根本原因在于MasterPlatypusV4. emergencyWithdraw函数,它在检查偿付时,并未考虑到用户借贷债务的详细情况,而是直接检查用户债务是否达到借贷限额。只要检查通过,用户就可以提取全部资产。

二、安全建议

对于本次事件,合约开发人员可能在开发时未能完全考虑到业务逻辑的安全性。为了构建安全的智能合约,我们需要考虑其业务逻辑的安全性。我们在处理业务逻辑时,应该遵循以下操作要求:

(1)若使用低级调用方法,请确保通过检查返回值来处理调用失败的可能性

(2)函数接收参数时,需要验证输入的数据属性是否具有安全性和正确性

(3)在业务设计过程中要保证业务的严谨性、完整性以及经济模型的正确性

(4)需要向第三方专业的审计团队寻求技术帮助

About Us

SharkTeam的愿景是全面保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

更多区块链安全咨询与分析,点击下方链接查看

D查查|链上风险核查https://app.chainaegis.com

# web安全 # 区块链安全
本文为 SharkTeam 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
SharkTeam LV.8
SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Huobi Global、OKC、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。
  • 172 文章数
  • 42 关注者
SharkTeam:2024年上半年度Web3安全报告
2024-07-08
SharkTeam:美国众议院FIT21法案解读
2024-06-26
SharkTeam:UwU Lend攻击事件分析
2024-06-13