欢迎光临散文网 会员登陆 & 注册

dei230507攻击事件分析(arbitrum为例)

2023-08-06 17:52 作者:web3安全审计t  | 我要投稿

0 总结

    1 dei合约漏洞由一次未经完善测试的logic合约更新引入,从更新到事发,存在了约20天

1 一句话原理

    攻击者部署并执行攻击合约:通过dei合约的burnFrom函数的编码漏洞,获取了dei流动性交易对合约的approve额度,最终清空dei -> usdc的交易对里共计650万美元左右的虚拟资产

2 攻击事件发生时间点

    23-05-05 17点

3 涉及到的地址和合约:

    0xb1141785b7b94eb37c39c37f0272744c6e79ca1517529fec3f4af59d4c3c37ef

        核心攻击交易

    0x189cf534de3097c08b6beaf6eb2b9179dab122d1

        攻击者地址

    0xe2ee6252509382a2b6504d5a5f7a1c5018a38168

        用于攻击的合约(payload)

    0xde1e704dae0b4051e80dabb26ab6ad6c12262da0

        被攻击的合约(dei稳定币Proxy合约)

    0xBC1b62dB243B51dabCd9540473324f36E094EC55

        被攻击的合约(dei稳定币logic合约)

    0x126bE6a9ec71A1FeA19D2288Ba2Ce4cDC0faCB68

        流动性交易对合约

4 简略的攻击流程(整个攻击流程在一次合约交易中完成)

    1 调用approve函数,授予dei-usdc流动性交易对合约地址,对当前攻击合约地址很大的transferFrom授权额度

    2 调用burnFrom函数,降低dei-usdc流动性交易对合约地址的授权额度

    漏洞函数,导致攻击合约拥有了对dei-usdc流动性交易对合约地址的transferFrom授权额度。

    3 调用transferFrom函数将dei-usdc流动性交易对合约地址里的dei全部转移到攻击合约地址,但是留下1个DEI

    4 调用dei-usdc流动性交易对合约地址里的sync函数,更新其中的dei和usdc的数量关系(1DEI和130万usdc)

    5 取出该流动性交易对合约地址里的所有usdc

5 dei合约更新时间轴

    deus finance deployer: 0x18b4287fa4155efd149aece678a75bbd69ede0b8

    22-11-15 12点

        转入手续费   0.095eth

        创建多个合约,并初始化dei逻辑合约为尾号ca15

            0x3f4a3f3a51b474483f201851c3de134b89d4ca15 : 初始化逻辑合约

            0xfcb8981c9da9aed8de846d46b470b8524b69edff: proxyAdmin合约

            0xde1e704dae0b4051e80dabb26ab6ad6c12262da0 : proxy合约

    23-01-24 12点

        创建合约

            0x528e6E8A69b148fD77EDC06E1121D7B8056B071C : 新逻辑合约

    23-01-24 8点

        更新逻辑合约为尾号71c

    23-01-25 14点

        创建合约

            0x1472b3081d81b792e697aea90accbbc4adc5baf9 : 新逻辑合约

        更新逻辑合约为尾号baf9

    23-04-10 14点

        创建合约

            0xBC1b62dB243B51dabCd9540473324f36E094EC55 : 新逻辑合约(有问题的合约)

    23-04-16 11点

        更新逻辑合约为尾号 ec55

    23-05-05 19点

        创建合约

            0x0d768f28b018ba1c53ebfbd8c02db0c14291c97b : 新逻辑合约

            更新逻辑合约为  0x1472b3081d81b792e697aea90accbbc4adc5baf9

        更新目的:

            发生攻击事件,不确定原因,先回滚逻辑合约版本(已经发现了问题,但是还是先稳妥一点,回滚版本)

    23-05-05 20点

        创建合约

            0x7a6F1217C97DE6aE9BF7BC2b526C72a0FB8c4093 : 新逻辑合约

            更新逻辑合约为尾号  4093

        更新目的:

            确认攻击事件的发生原因,注释掉burnFrom函数,避免进一步的攻击事件发生

    之后

        和攻击者进行聊天交互

参考文档

https://www.aiqubi.com/archives/1226102.html


dei230507攻击事件分析(arbitrum为例)的评论 (共 条)

分享到微博请遵守国家法律