详解Deus Finance预言机攻击

本文约593字,阅读全文需要约1分钟
损失约300万美元

1.前言

北京时间 2022 年 3 月 15 日,知道创宇区块链安全实验室监测到 Deus Finance 遭到黑客攻击,损失约 300 万美元。本文,知道创宇区块链安全实验室对本次事件进行了全面分析。

2.基础信息

攻击者地址:0x1ed5112b32486840071b7cdd2584ded2c66198dd

攻击合约:0xb8f5c9e18abbb21dfa4329586ee74f1e2b685009

DeiLenderSolidex 合约:0xeC1Fc57249CEa005fC16b2980470504806fcA20d

甲骨文合约:0x5CEB2b0308a7f21CcC0915DB29fa5095bEAdb48D

交易哈希:0xe374495036fac18aa5b1a497a17e70f256c4d3d416dd1408c026f3f5c70a3a9c

3.漏洞分析

此次事件,漏洞关键在于协议通过 StableV1 AMM - USDC/DEI 交易对在获取价格时被攻击者操控,导致普通用户资产被清算,最终获利。

DeiLenderSolidex 合约的清算函数 liquidate()中,会通过 isSolvent()函数来判断用户是否应该被清算,而 isSolvent()调用 Oracle.getPrice()来问价判断抵押物的价格,因而产生了漏洞

详解Deus Finance预言机攻击

详解Deus Finance预言机攻击

由函数getPrice()可知,代币价格算法:((DEI的余额)+(USDC的余额x10^12))x10^18 /(代币总量)

DEI的代币价格是通过DEI和USDC在池子中的余额进行判断的的,因此攻击者利用闪电贷发起此次攻击,控制了DEI代币的价格。

详解Deus Finance预言机攻击

4.攻击流程

攻击者从 SPIRIT-LP_USDC_DEI 中闪电贷借出约 970 万 DEI 代币,之后再次使用闪电贷从 sAMM-USDC/DEI 中获取了 2477 万 DEI 代币用于操纵价格预言机

详解Deus Finance预言机攻击

随后清算价格操纵后的破产用户

详解Deus Finance预言机攻击

之后偿还闪电贷到 sAMM-USDC/DEI 中

详解Deus Finance预言机攻击

烧毁流动性代币获取 521 万 USDC 和 524 万 DEI

详解Deus Finance预言机攻击

使用 521 万 USDC 换取 517 万 DEI

详解Deus Finance预言机攻击

归还从 SPIRIT-LP_USDC_DEI 中借的 970 万 DEI

详解Deus Finance预言机攻击

最后攻击者将获取的 DEI 全部换成 USDC,总获利约 300 万美元。

详解Deus Finance预言机攻击

5.总结

本次攻击事件核心是由于价格预言机对代币价格的实现存在问题,使得能够人为的通过池子中代币的余额来对代币价格进行控制,导致了此次事件的发生,建议官方在使用预言机时能够严格控制价格的逻辑实现。

近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。

原创文章,作者:创宇区块链安全实验室。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选