Poolz遭算术溢出攻击 损失66.5万美元 多链资产受影响

robot
摘要生成中

Poolz遭遇算数溢出攻击,损失约66.5万美元

近日,一起针对Poolz的攻击事件在以太坊、币安智能链和Polygon网络上发生。根据链上数据监控,攻击发生于2023年3月15日凌晨3点16分(UTC时间)。此次攻击涉及多种代币,包括MEE、ESNC、DON、ASW、KMON、POOLZ等,总计损失约66.5万美元。

Poolz因算数溢出问题遭受攻击,损失约665K美元!

攻击者利用了Poolz智能合约中的一个算数溢出漏洞。具体来说,问题出在CreateMassPools函数中的getArraySum函数。该函数在计算用户批量创建池子时提供的初始流动性时,未能正确处理大数相加导致的溢出情况。

攻击过程如下:

  1. 攻击者首先在某去中心化交易所兑换了少量MNZ代币。

  2. 随后调用CreateMassPools函数,传入精心构造的参数。其中_StartAmount数组包含两个值:一个接近uint256上限的大数,以及一个正常的代币数量。

  3. 由于getArraySum函数中的累加操作导致溢出,最终返回值为1。然而,合约在记录池子属性时仍使用了原始的_StartAmount值。

  4. 这导致攻击者实际只转入1个代币,却在合约中记录了一个巨大的流动性数量。

  5. 最后,攻击者调用withdraw函数提取代币,完成攻击。

Poolz因算数溢出问题遭受攻击,损失约665K美元!

为防止此类问题再次发生,建议开发者采取以下措施:

  1. 使用较新版本的Solidity编译器,这些版本会自动进行溢出检查。

  2. 如果必须使用旧版Solidity,可以引入第三方安全库来处理整数运算,如OpenZeppelin的SafeMath库。

  3. 在处理用户输入时,特别是涉及大数运算的场景,应该进行严格的边界检查和异常处理。

  4. 定期进行代码审计,特别关注可能涉及整数溢出的部分。

  5. 考虑引入多重签名或时间锁等机制,为紧急情况下的响应争取时间。

Poolz因算数溢出问题遭受攻击,损失约665K美元!

这起事件再次提醒我们,在智能合约开发中,安全性应始终是首要考虑因素。即使是看似简单的算术操作,也可能成为攻击者利用的突破口。

Poolz因算数溢出问题遭受攻击,损失约665K美元!

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
zkProofInThePuddingvip
· 07-31 01:15
又黑又亏 太菜了吧
回复0
雏菊独角兽vip
· 07-31 01:15
来看漏洞小花盛开的大戏喽~ 又一个没算好数的蜜罐溢溢溢了呢
回复0
Crypto凤凰vip
· 07-31 01:14
又一个项目倒下...站起来还需要时间去修复信仰[翻白眼]但市场总能重建!
回复0
链上流浪诗人vip
· 07-31 00:55
66w...铜臭的诗都写不出来了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)