头条

SharkTeam:Onyx Protocol 攻击事件原理分析

文 / 币门户 来源 / 阅读 / 8989 1年前
本次攻击事件根本原因是:一是新 Market 未初始化流动性,造成流动性可控;二是数值计算问题,存在精度损失问题。


撰文:SharkTeam


北京时间 2023 年 11 月 1 日,由于 redeemUnderlying() 函数存在精度损失漏洞,Ethereum 链上项目 Onyx Protocol 遭受攻击,攻击者已获利 210 万美元。



SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。


一、事件分析


攻击者地址:

0x43083E943cd4D35F242F7850bE2402126A57D6B5

0x30E4d4e89369cf4D91cB675448Db0B2f126c1caF

0x085bDfF2C522e8637D4154039Db8746bb8642BfF

0x4C9C8661243E9E9a15A35B8873317eb881330c98


攻击合约:

0x526e8e98356194b64eae4c2d443cc8aad367336f


攻击交易:

0xf7c21600452939a81b599017ee24ee0dfd92aaaccd0a55d02819a7658a6ef635


攻击流程:

(1) 攻击者(0x085bDfF2)在攻击之前提议了一个关于在 Onyx 中建立新的 Market:PEPE。



(2)攻击者(0x085bDfF2)通过闪电贷,贷了 4,000 枚 WETH。随后,利用所贷的 WETH 兑换成 PEPE。



(3)攻击者(0x085bDfF2)通过 Create2 方式创建了合约(0xf8e15371),将 1 枚 PEPE 代币存入 oPEPE 池里,铸造了 50,000,000,000,000,000,000 枚 oPEPE 代币。随后,攻击者(0x085bDfF2)redeem 了大量的 oPEPE,并留有 2wei 的 oPEPE。攻击者(0x085bDfF2)又从其他的 Market 中借了一些 ETH。



(4)攻击者(0x085bDfF2)利用 redeemUnderlying() 函数中的精度损失漏洞,赎回大量的 PEPE,留有 1 枚 oPEPE。然后,攻击者(0x085bDfF2)清算了自己,并且重置了 Market 的状态。



(5)攻击者(0x085bDfF2)重复上述 3 和 4 的方式,归还闪电贷,最终获利约 1156 枚 ETH。


二、漏洞分析


在攻击之前,OnyxProtrol 引入了新的 Market-oPEPE。此时的 Market 没有初始流动性。这样,攻击者(0x085bDfF2)就能够在具有可控流动性的 oPEPE 池中实施漏洞攻击。redeemUnderlying() 函数在计算相关数值时候存在四舍五入,从而获得巨额利润。



本次攻击事件根本原因是:一是新 Market 未初始化流动性,造成流动性可控;二是数值计算问题,存在精度损失问题。


三、安全建议


针对本次攻击事件,开发人员在日常开发中应当采取有以下的缓解措施:


(1)对于部分使用数学计算的函数,需要进行精度损失测试。由于可能存在多个函数相互调用和多次计算,会导致相应的数值损失;

(2)项目上线前,需要通过第三方专业的审计团队进行智能合约审计。

评论

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

站点声明:本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。

免责声明:币门户作为开放的资讯分享平台,所提供的资讯仅代表投稿用户的个人观点,与币门户平台立场无关,且不构成任何投资理财建议。

Powered By 币门户 © 2019-2023
相关侵权、举报、投诉及建议等,请发QQ E-mail   客服QQ:1117-0303

友情链接: 金色财经