NFT项目惊现低级漏洞,合约未审计导致3400万美元资产被锁死

成都链安Xuất bản vào 2022-04-23Cập nhật gần nhất vào 2022-04-23

Tóm tắt

由于多个代码缺陷导致合约中 11539.5 枚 ETH永远无法取出。

2022年4月23日,成都链安链必应-区块链安全态势感知平台舆情监测显示,NFT项目方Akutar的AkuAuction合约由于智能合约本身漏洞,导致11539ETH(价值约3400万美元)被锁死在合约中。成都链安技术团队第一时间对事件进行了分析,结果如下。
#1 事件相关信息
4月23日消息,Solidity开发者foobar发推称,11539ETH(价值3400万美元)被永久锁定在AkuDreams合约中,个人用户或开发团队都无法取出资金。退款处理完成后,将每个出价状态设置为1。因此,用户无法调用emergencyWithdraw()。此外,团队也无法领取资金,基本上等于销毁。 

漏洞

成都链安技术团队立刻进行了分析。
漏洞合约:
0xf42c318dbfbaab0eee040279c6a2588fa01a961d
#2 漏洞分析
Akutar项目的智能合约包含2个漏洞:
漏洞一:
1.第一个合约漏洞在processRefunds中,设计者根据refundProgress计数器进行循环退款。
2.而这里使用了call函数进行退款操作,且把退款的结果作为require的判定条件。

漏洞

3.因此如果此时有攻击者在队列中进行退款操作,调用call退款给攻击者时,攻击者在fallback中进行进行恶意的revert则会导致退款队列卡在攻击者这里,从而导致队列后面的所有人都无法进行退款。

漏洞

4.这个漏洞被人在链上证明有效,但随后攻击合约便进行了解锁,并没有进行攻击利用,且公开进行了申明。

漏洞

漏洞二:
该漏洞也是导致价值约3400万美元的ETH资产被锁死在合约中的元凶。
1.在claimProjectFunds函数中,该函数主要用于项目方提款。为了避免项目方权限过大,在用户完成提款之前就将合约中的资产全部转走导致用户无法退款,所有的退款操作应全部完成之后项目方才能够提款。业务逻辑设计上来说,是没有问题的。然而,在具体的代码实现中,当前的代码容易受到漏洞一的影响,导致项目方无法提款,不过这只是潜在的风险,本次资金锁死的元凶不是这个原因。
2.注意函数中第620行代码:require (refundProgress > = totalBids)此处refundProgress表示已经处理了多少个用户的退款,totalBids表示所有用户总投标了多少个NFT。注意由于一个用户可以投标多个NFT,导致单从数值上比较,refundProgress可能小于totalBids。

漏洞

而再来看看退款函数processRefunds中:require(_refundProgress < _bidIndex); bidIndex表示所有参与竞标的用户,refundProgress永远不会高于bidIndex。

漏洞

此时来看看bidIndex的值,为3669:

漏洞

totalBids的值为5495:

漏洞

3.所以refundProgress>=5495且refundProgress<3669这个判断条件永远不会成立,最终导致项目方团队将永远无法执行后续的提款操作。此处应将refundProgress与bidIndex做对比,开发者犯了一个很低级的错误。最终,导致项目方11539ETH(价值约3400万美元)被锁定无法提取。
#3 总结
针对本次事件,成都链安技术团队建议:
1.开发者应具备基本的安全开发意识,熟悉智能合约开发应注意的安全问题;
2.在合约设计和实现时,注意代码实现的正确性,项目上线前,可选择专业的安全审计公司进行全面的安全审计,规避安全风险。

Nội dung Liên quan

Quay lại bàn chơi AI, động thái đầu tiên của Mark Zuckerberg là sa thải nhân viên?

Meta dự kiến bắt đầu đợt sa thải nhân sự lớn vào ngày 20/5, với khoảng 8.000 việc làm (10% lực lượng lao động toàn cầu) bị cắt giảm, và có thể tiếp tục sa thải trong nửa cuối năm. Động thái này diễn ra chỉ 10 ngày sau khi Meta ra mắt Muse Spark - mô hình AI đa phương thức mạnh nhất của họng, được kỳ vọng giúp công ty trở lại cuộc đua AI với các gã khổng lồ như OpenAI hay Google. Dù tình hình tài chính ổn định, Meta đang thúc đẩy cấu trúc tổ chức tinh gọn hơn với sự hỗ trợ của AI. Công ty đặt mục tiêu đến giữa 2026, 65% kỹ sư phải có trên 75% code được viết với sự tham gia của AI. Việc sử dụng AI thậm chí đã trở thành chỉ số đánh giá hiệu suất nhân viên. Xu hướng dùng AI để tái cấu trúc lực lượng lao động không chỉ riêng Meta. Amazon, Block (của Jack Dorsey) và Snap cũng đã thực hiện các đợt sa thải tương tự, viện dẫn lý do AI giúp nâng cao hiệu quả và giảm công việc lặp đi lặp lại. Tuy nhiên, việc Block sau đó mời một số nhân viên sa thải quay lại làm việc cho thấy các công ty có thể đang vội vàng trong việc này.

Odaily星球日报1 giờ trước

Quay lại bàn chơi AI, động thái đầu tiên của Mark Zuckerberg là sa thải nhân viên?

Odaily星球日报1 giờ trước

Giao dịch

Giao ngay
Hợp đồng Tương lai
活动图片