freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SharkTeam:Onyx Protocol攻击事件原理分析
SharkTeam 2023-11-02 17:03:10 80543

北京时间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)项目上线前,需要通过第三方专业的审计团队进行智能合约审计。

# web3安全 # Web3
本文为 SharkTeam 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
SharkTeam LV.8
SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Huobi Global、OKC、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。
  • 172 文章数
  • 42 关注者
SharkTeam:2024年上半年度Web3安全报告
2024-07-08
SharkTeam:美国众议院FIT21法案解读
2024-06-26
SharkTeam:UwU Lend攻击事件分析
2024-06-13