DFX Finance重入漏洞

  • Archime
  • 更新于 2022-11-28 15:11
  • 阅读 2806

DFX Finance重入漏洞

1. DFX Finance重入漏洞简介

https://twitter.com/BlockSecTeam/status/1590960299246780417

1.png

2. 相关地址或交易

攻击交易:0x390def749b71f516d8bf4329a4cb07bb3568a3627c25e607556621182a17f1f9 漏洞合约: 0x46161158b1947d9149e066d6d31af1283b2d377c 攻击合约: 0x6cFa86a352339E766FF1cA119c8C40824f41F22D 攻击地址: 0x14c19962e4a899f29b3dd9ff52ebfb5e4cb9a067

3. 获利分析

https://phalcon.blocksec.com/tx/eth/0x390def749b71f516d8bf4329a4cb07bb3568a3627c25e607556621182a17f1f9

2.png

4. 攻击过程&漏洞原因

  1. 攻击者先调用DFX 合约0x78ac的方法viewDeposit() 查看获取200000.000000000000000000个流动性代币需要存储2325581395.325581个XIDR以及100000.000000个USDC;

3.png

  1. 攻击者再通过合约Uniswap V3: DAI-USDC 4闪电贷获取100,000 个 USDC,再通过Uniswap V3: USDC-XIDR闪电贷获取2,325,581,395.325581个XIDR,最后通过dfx-xidr-v2的闪电贷获取2,313,953,488.348954个XIDR、99,500个USDC。至此,资金准备已完成。

4.png

5.png

  1. 攻击者将贷款获得的资金通过方法deposit() 存入dfx-xidr-v2合约,共存入2,325,581,395.325581个XIDR、100,000个USDC,获取300,886.541899570004966586个dfx-xidr-usdc-v2 LPToken:

6.png

  1. 攻击者此时实际上已完成盗币,原因在于flash方法未使用防重入修饰符nonReentrant,导致攻击者可以先使用闪电贷获取资金,再存入贷款,绕过balance检查,且获得lptoken用于后续提款:

7.png

8.png

  1. 攻击者直接调用withdraw() 提取USDC、XIDR代币,归还闪电贷,攻击完成

9.png

点赞 0
收藏 1
分享

0 条评论

请先 登录 后评论
Archime
Archime
江湖只有他的大名,没有他的介绍。