DEUS 被攻击事件分析:稳定币 DEI 合约存在 burn 逻辑漏洞

Foresight · 2023-05-06 10:58

Sender

Deus

DEI

DEUS 稳定币 DEI 合约存在 burn 逻辑漏洞,攻击者已获利约 630 万美元。


撰文:SharkTeam


北京时间 2023 年 5 月 6 日,DEUS 的稳定币 DEI 合约存在 burn 逻辑漏洞,攻击者已获利约 630 万美元。


SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。


一、事件分析


攻击者地址:0x08e80ecb146dc0b835cf3d6c48da97556998f599


攻击合约:0x2b1a7a457a2c55ba1e03c087cc3e4e5b05b6360f


漏洞合约:0xDE1E704dae0B4051e80DAbB26ab6ad6c12262DA0


攻击交易:0xde2c8718a9efd8db0eaf9d8141089a22a89bca7d1415d04c05ba107dc1a190c3


该攻击交易的执行流程:


1、首先,攻击者(0x08e80ecb)先调用了攻击合约(0x2b1a7a45)的攻击函数。


2、在攻击函数中,调用漏洞合约(0xDE1E704d)的 approve->burnFrom->transferFrom 函数


3、在 transferFrom 函数中将 110 万个 DEI 转移到自己的账户,最后调用交易对的 swap 将 DEI 换成 USD 转移到攻击者(0x08e80ecb)。


漏洞分析:


在 burnFrom 函数中,直接将 sender 对 account 的 allowance 与 account 对 sender 的 allowance 进行了复制。


攻击者首先对漏洞合约(0xDE1E704d)进行最大值的 approve,然后调用 burnFrom 函数输入 amount=0,即直接让漏洞合约(0xDE1E704d)对攻击合约进行了 approve 的最大值。

随后直接调用 tranferFrom 函数将 110 万的 DEI 转移到自己的地址,最后通过 pair 交易对换成 USD 完成攻击


漏洞总结:


本次事件根本原因是漏洞合约(RouteProcessor2)burnFrom 的调用权限问题或者是_allowance 传参错误问题,具体需要结合项目方实际业务需求进行修改,可以通过对 burnFrom 设置合适的管理员权限或者将_allowance[_msgSender()][account] 改成 _allowance[account][_msgSender()]等方法进行修复。


二、安全建议


针对本次攻击事件,我们在开发过程中应遵循以下注意事项:


1、在开发资产相关的逻辑函数时,应慎重考虑业务逻辑的严谨性。

2、本次产生漏洞的 burnFrom 函数是项目方在 4 月 16 日进行合约升级时引入的,所以项目在上线或升级合约前,需要通过第三方专业审计团队的合约审计。

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表Bi123的观点或立场

相关推荐

上一篇:周末荐读:Sui 主网上线,一览 Web3 教育赛道项目

下一篇:三分钟了解 Mobaverse:支持 NFT 商业化的 GameFi 游戏

扫码下载APP添加官方微信
行情机会交流