Akutars项目方价值3400万美元ETH被永久锁定,系合约实现逻辑问题
2022-04-23 06:40
欧科云链链上天眼:NFT项目方Akutars的11,539.5 ETH(约合3,400万美元)被永久锁定在拍卖合约。
Aku采用的是类似荷兰降价拍卖的形式,拍卖结束后会按照结束价格给用户退还超过最低价格的部分,因此这涉及refund以及total bids统计两个方面,而项目方在这两个方面均存在实现逻辑问题。
第一个漏洞,processRefunds() 会被恶意合约阻断,实现DoS攻击,也确有用户使用恶意合约阻断了processRefunds()执行,但该名用户表示只是让项目方确认问题存在,随即设置恶意合约变量,使得processRefunds()顺利执行完,因此该漏洞虽被利用,但已成功解决。
第二个漏洞,也就是真正导致项目方无法提款的关键所在,processRefunds()是按照msg.sender的数量记录在了refundProgress变量,拍卖结束项目方调用claimProjectFunds()取出合约内的ETH时,要求满足refundProgress >= totalBids,而totalBids记录的是NFT的数量,合约最终状态refundProgress数值为3669,totalBids数值为5495,从而导致项目方无法提取合约内的11539.5 ETH。
需要指出的是,在执行processRefunds()之前,参与拍卖的用户可以在三天后通过emergencyWithdraw()将个人投入的ETH取回,但由于processRefunds()的执行,导致用户的拍卖状态由未处理变为refund,从而不能再进行emergencyWithdraw()。
Aku采用的是类似荷兰降价拍卖的形式,拍卖结束后会按照结束价格给用户退还超过最低价格的部分,因此这涉及refund以及total bids统计两个方面,而项目方在这两个方面均存在实现逻辑问题。
第一个漏洞,processRefunds() 会被恶意合约阻断,实现DoS攻击,也确有用户使用恶意合约阻断了processRefunds()执行,但该名用户表示只是让项目方确认问题存在,随即设置恶意合约变量,使得processRefunds()顺利执行完,因此该漏洞虽被利用,但已成功解决。
第二个漏洞,也就是真正导致项目方无法提款的关键所在,processRefunds()是按照msg.sender的数量记录在了refundProgress变量,拍卖结束项目方调用claimProjectFunds()取出合约内的ETH时,要求满足refundProgress >= totalBids,而totalBids记录的是NFT的数量,合约最终状态refundProgress数值为3669,totalBids数值为5495,从而导致项目方无法提取合约内的11539.5 ETH。
需要指出的是,在执行processRefunds()之前,参与拍卖的用户可以在三天后通过emergencyWithdraw()将个人投入的ETH取回,但由于processRefunds()的执行,导致用户的拍卖状态由未处理变为refund,从而不能再进行emergencyWithdraw()。
2025-10-14 14:19
过去1小时全网爆仓超5600万美元,主爆空单
2025-10-14 14:16
BTC反弹突破112000 USDT,24H跌幅收窄至2.67%
2025-10-14 14:16
ETH反弹突破4000 USDT,24H跌幅收窄至3.49%
2025-10-14 14:11
美国寻求没收某跨国杀猪盘案件的127,271枚比特币
2025-10-14 14:08
美银调查:做多黄金取代做多美股七巨头成最拥挤交易
2025-10-14 14:00
Recall(RECALL)即将上线Bybit现货平台
2025-10-14 14:19
过去1小时全网爆仓超5600万美元,主爆空单
2025-10-14 14:16
BTC反弹突破112000 USDT,24H跌幅收窄至2.67%
2025-10-14 14:16
ETH反弹突破4000 USDT,24H跌幅收窄至3.49%
2025-10-14 14:11
美国寻求没收某跨国杀猪盘案件的127,271枚比特币
2025-10-14 14:08
美银调查:做多黄金取代做多美股七巨头成最拥挤交易
2025-10-14 13:58
贝莱德CEO:若未来10年美国经济年均增速达不到3%,财政赤字将彻底拖垮经济
下载Odaily星球日报app
让一部分人先读懂 Web3.0
