Back to Blog

如何以錯誤的方式驗證簽名:AssociationNFT 案例分析

Code Auditing
April 21, 2022
2 min read
Image: Raymond Clarke/Flickr
Image: Raymond Clarke/Flickr

The Association NFT 是 NBA 推出的 NFT。然而,我們發現該 NFT 銷售合約存在嚴重的漏洞,允許攻擊者在不支付任何代幣的情況下鑄造大量 NFT。

此漏洞的根本原因是簽名驗證使用不當。基本上,該合約未能確保簽名只能由使用者(且僅該使用者)使用一次。在這種情況下,攻擊者可以重複使用特權使用者的簽名,並將代幣鑄造給自己。

我們可以看到,在 verify 函式中,簽名中沒有包含發送者的地址。此外,也沒有包含 nonce(隨機數)的機制來確保簽名只能使用一次。這些安全要求是軟體安全課程中的基礎知識。

令我們驚訝的是,這種漏洞竟然會存在於一個熱門的 NFT 專案中。整個社群需要更加重視合約的安全性。

關於 BlockSec

BlockSec 是一家開創性的區塊鏈安全公司,由一群全球傑出的安全專家於 2021 年成立。該公司致力於提升新興 Web3 世界的安全性和可用性,以促進其大規模採用。為此,BlockSec 提供智慧合約與 EVM 鏈的安全審計服務、用於安全開發與主動威脅阻斷的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 開發者在加密世界中高效運作的 MetaSuites 擴充功能。

迄今為止,該公司已服務超過 300 家知名客戶,如 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並從包括經緯創投 (Matrix Partners)、高榕資本 (Vitalbridge Capital) 和分佈式資本 (Fenbushi Capital) 在內的知名投資者手中,獲得了數千萬美元的兩輪融資。

官方網站:https://blocksec.com/

官方 Twitter 帳號:https://twitter.com/BlockSecTeam

Sign up for the latest updates
Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec
Security Insights

Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec

2026年8月10日至16日期間,共5起重大安全事件,量化損失約4700萬美元。深度分析聚焦Harmony Layer-1鏈實作缺陷:跨分片收據重放導致原生ONE被未授權鑄造,目的分片以未驗證的MerkleProof.ShardID及BlockNum欄位判定收據已花費標記,而非依簽署來源標頭,使已入帳收據可重放而無對應來源分片扣款。約偽造3.01兆ONE,惟其名目價值遠超代幣市值,無法變現亦未確認實現損失,故Harmony不計入總額;約4700萬美元來自私鑰洩露(未知巨鯨錢包約2500萬、Kite約1400萬、Coinsbuy約790萬)及Fox業務邏輯缺陷(約11.7萬)。

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報
Security Insights

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報

2026年8月3-9日當週,BNB Chain發生2起重大安全事件,總損失約160萬美元,均源於價格操縱。LpdFi事件(約69.7萬美元)重複使用同一可操縱的PancakeSwap流動池儲備進行訂單估值和利息贖回,使攻擊者虛增本金並操控池子以索取超額利息。Moke Token事件(約90.6萬美元)結合可操縱現貨價格與重複LP分紅計算,多次領取虛增的MOKE及BNB分紅。

COLDCARD事件:當錢包的「隨機」助記詞並不隨機
Security Insights

COLDCARD事件:當錢包的「隨機」助記詞並不隨機

COLDCARD固件存在靜默構建整合漏洞,導致比特幣種子生成回退至軟件RNG,其弱隨機性使錢包種子可被離線破解。由於弱點存在於種子本身,固件更新無法修復;截至2026年8月7日,已確認損失達1,405 BTC(約9,100萬美元),私下估計高達2,055 BTC。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
如何以錯誤的方式驗證簽名:AssociationNFT 案例分析