千里之堤毁于蚁穴 Fortress Protocol 惨遭攻击_ROL:zksync币imtoken

前言

北京时间2022年5月9日,知道创宇区块链安全实验室监测到BSC链上借贷协议FortressProtocol因预言机问题被攻击,这是最近实验室检测到的第三起预言机攻击事件,损失包括1,048枚ETH和400,000枚DAI,共计约300W美元,目前已使用AnySwap和Celer跨链到以太坊利用Tornado进行混币。

知道创宇区块链安全实验室第一时间跟踪本次事件并分析。

基础信息

被攻击Comtroller:0x01bfa5c99326464b8a1e1d411bb4783bb91ea629

被攻击预言机地址:0xc11b687cd6061a6516e23769e4657b6efa25d78e

攻击者地址:0xA6AF2872176320015f8ddB2ba013B38Cb35d22Ad

攻击合约:0xcD337b920678cF35143322Ab31ab8977C3463a45

tx:0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

漏洞分析

该项目是依旧是Compound的仿盘,但由于项目方在预言机实现注释了原本存在的检查导致不需要足够的power便可以通过0xc11b687cd6061a6516e23769e4657b6efa25d78e#submit篡改价格;

攻击者通过改变FTS在协议中的价格借走了其他池子中的资产,市场中的借贷池如下:

攻击流程

1、攻击者购买了FTS代币并通过提案投票支持添加FTS作为抵押物,提案ID为11;

2、通过调用预言机submit函数改变FTS的价格;

3、攻击者使用100个FTS作为抵押物调用enterMarket进入市场;

4、由于市场价格对于FTS的价值计算出现问题,攻击者使用该抵押品直接调用borrow进行借款;

借取的资产:

5、由于100个FTS没什么价值不需要取回,而攻击者后续仍将其他用于第一步的FTS还在Pancake兑换进行了彻底的套现。

总结

本次攻击原因是Compound仿盘在预言机使用时出现了问题。近期大量Compound仿盘项目被攻击,我们敦促所有Fork了Compound的项目方主动自查,目前已知的攻击主要归结于如下几个问题:

千里之堤毁于蚁穴。从内部调用可见,本次攻击者使用getAllMarkets依次遍历拿取了全部市场的底层资产并将FTS彻底套现。建议项目方对于自己有不一样的实现上一定要建立在充分的理解和足够的第三方安全审计上。一点小的误差将可能导致项目的全盘损失。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-8:688ms