Rikkei Finance事件分析
https://rikkeifinance.medium.com/rikkei-finance-incident-investigation-report-b5b1745b0155
1、 攻击合约先使用0.0001 BNB 在Rifi BNB中抵押出499553304430711102439309 rBNB代币; 2、 根据交易过程中的 JumpRateModel、AccrueInterest、mintAllowed 等合约或函数名称可看出,Rifi BNB 是一个类似Compound 的抵押贷款交易所; 3、 问题在于第3 步中,攻击合约调用了 SimplePriceOracle 合约的setOracleData 函数,这是用于设置价格预言机地址的函数,但是函数可见性却为external ;可被任何合约调用并设置任意值,意味着价格也可被任意设置;
4、 可看到价格预言机被设置为 0xA36F6F78B2170a29359C74cEFcB8751E452116f9 ,反编译查看其代码,发现存在一个极大的数
5、 分析SimplePriceOracle 合约的 getUnderlyingPrice 函数返回的值,可发现修改前其值为 416247538680000000000 ,修改预言机后为 416881147930000000000000000000000
漏洞复现代码参考:https://github.com/SunWeb3Sec/DeFiHackLabs/blob/main/src/test/Rikkei_exp.sol
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!