我們發現 @AkuDreams 合約 中存在兩個嚴重的邏輯漏洞。第一個漏洞可能會導致拒絕服務(DoS)攻擊,而第二個漏洞將導致項目資金(超過 3400 萬美元)被永久鎖定。
漏洞一

第一個漏洞存在於 processRefunds 函數中。此函數包含一個用於退還每位出價用戶資金的迴圈。然而,出價者可能是一個會導致交易撤回(revert)的惡意合約。這可能會導致 processRefunds 的調用失敗,進而導致所有用戶的退款都無法成功。幸運的是,此漏洞尚未被利用。
我們建議合約可以採取以下措施來進行退款:
- 確保只有外部帳戶(EOA)可以參與出價
- 使用 ERC20 代幣(例如 WETH)代替 ETH
- 提供讓用戶可以自行領取退款的函數
漏洞二

第二個漏洞是一個軟體缺陷。在 claimProjectFunds 函數中,項目所有者可以領取合約中的以太幣。然而,其中的 require(refundProgress >= totalBids, "Refunds not yet processed"); 語句存在錯誤,它應該將 refundProgress 與 _bidIndex 進行比較,而不是 totalBids。由於這個漏洞,該條件永遠無法滿足,合約中的以太幣(11,539.5 枚 Ether)可能會被永久鎖定。
總結
繼昨日的 NBA NFT 事件後,我們再次對高知名度項目竟然忽視基本軟體安全實踐感到驚訝。至少,該項目應該編寫足夠的測試案例。遺憾的是,我們懷疑這些項目因過於忙碌而沒有編寫測試案例,最終導致 3400 萬美元永久損失。
關於 BlockSec
BlockSec 是一家開創性的區塊鏈安全公司,由一群全球傑出的安全專家於 2021 年創立。公司致力於提升新興 Web3 世界的安全性和易用性,以促進其大規模採用。為此,BlockSec 提供智慧合約與 EVM 鏈安全審計服務、用於安全開發與主動威脅防禦的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 開發者高效瀏覽加密世界的 MetaDock 擴充功能。
迄今為止,公司已為包括 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap 在內的 300 多家知名客戶提供服務,並從 Matrix Partners、Vitalbridge Capital 和分布式資本(Fenbushi Capital)等傑出投資者手中獲得了兩輪共數千萬美元的融資。
官方 Twitter 帳號:https://twitter.com/BlockSecTeam



