近日,一家安全公司發現某數字藏品合約存在兩個嚴重漏洞,這些漏洞可能會導致用戶資產被鎖定或項目方資金無法提取。第一個漏洞位於退款處理函數中。該函數使用循環爲所有用戶進行退款,但如果退款對象是惡意合約,可能會拒絕接收並導致交易失敗,進而影響所有用戶的退款操作。幸運的是,這個漏洞並未被利用。針對類似退款場景,專家建議採取以下安全措施:1. 限制只有普通用戶帳戶可參與項目2. 使用代幣(如WETH)代替原生資產3. 設計用戶主動領取退款的機制,避免批量退款第二個漏洞是一個代碼錯誤。在項目方提取資金的函數中,存在一個條件判斷bug。該判斷應比較退款進度和投標索引,但錯誤地與總投標數比較。由於退款進度永遠小於總投標數,且不再增加,導致條件永遠不滿足,項目方資金因此被永久鎖定在合約中。目前,超過3400萬美元的資產被鎖定。這次事件再次凸顯了項目安全的重要性。即使是知名項目,也可能出現低級錯誤。開發團隊需要編寫充分的測試用例,培養基本的安全意識。雖然在去中心化金融領域,安全審計已成常規做法,但在數字藏品項目中仍存在不足,這次事件就導致了巨額損失。此事件提醒我們,無論項目規模如何,都應重視智能合約的安全性,進行全面的安全審計,以防止類似問題的發生。
數字藏品合約漏洞致3400萬美元資產被鎖 專家提醒重視安全審計
近日,一家安全公司發現某數字藏品合約存在兩個嚴重漏洞,這些漏洞可能會導致用戶資產被鎖定或項目方資金無法提取。
第一個漏洞位於退款處理函數中。該函數使用循環爲所有用戶進行退款,但如果退款對象是惡意合約,可能會拒絕接收並導致交易失敗,進而影響所有用戶的退款操作。幸運的是,這個漏洞並未被利用。
針對類似退款場景,專家建議採取以下安全措施:
第二個漏洞是一個代碼錯誤。在項目方提取資金的函數中,存在一個條件判斷bug。該判斷應比較退款進度和投標索引,但錯誤地與總投標數比較。由於退款進度永遠小於總投標數,且不再增加,導致條件永遠不滿足,項目方資金因此被永久鎖定在合約中。目前,超過3400萬美元的資產被鎖定。
這次事件再次凸顯了項目安全的重要性。即使是知名項目,也可能出現低級錯誤。開發團隊需要編寫充分的測試用例,培養基本的安全意識。雖然在去中心化金融領域,安全審計已成常規做法,但在數字藏品項目中仍存在不足,這次事件就導致了巨額損失。
此事件提醒我們,無論項目規模如何,都應重視智能合約的安全性,進行全面的安全審計,以防止類似問題的發生。