Back to Blog

「セーフミント」が危険に:HypeBearsセキュリティインシデントから学ぶ教訓

Code Auditing
February 3, 2022
2 min read

2月3日午前(+8時差)、当社のシステムは、HypeBears NFTコントラクトに対する攻撃トランザクション 0xfa97c3476aa8aeac662dae0cc3f0d3da48472ff4e7c55d0e305901ec37a2f704 を報告しました。調査の結果、ERC721の_safeMint関数によって引き起こされたリエントランシー攻撃であることが判明しました。

原因

このプロジェクトでは、アカウントがミントできるNFTに制限があります。基本的に、アカウントがNFTをミントしたかどうかを記録するaddressMintedというマップがあります。

NFTをミントする際、コードはOZリファレンス実装の_safeMint関数を使用しています。この関数は、受信者がERC721トークンを受け取れるかどうかをチェックするため「安全」です。これにより、ERC721トークンを処理できないコントラクトにNFTがミントされるケースを防ぐことができます。 ドキュメントによると:

to がスマートコントラクトを参照する場合、IERC721Receiver.onERC721Received を実装する必要があり、これはセーフ転送時に呼び出されます。以下のコードは、_safeMint関数のOZ実装を示しています。

しかし、この外部関数呼び出しはセキュリティ上の抜け穴を生み出します。具体的には、攻撃者はonERC721Receivedコールバック内で再入可能呼び出しを実行できます。例えば、脆弱なHypeBearsコントラクトでは、攻撃者はonERC721ReceivedコールバックでmintNFT関数を再度呼び出すことができます(addressMintedがまだ更新されていないため)。

攻撃

以下のスクリーンショットは、攻撃トランザクションを示しています。

学び

SafeMintによるリスクは、セキュリティ研究者によって議論されてきました。link1 link2。しかし、脆弱なコードと実際の攻撃を依然として目にします。QBridgeセキュリティインシデントsafeTransferで示されているように、「安全な」関数を使用しても「安全な」コントラクトが保証されるわけではありません😃。

Sign up for the latest updates
ニュースレター - 2026年7月
Security Insights

ニュースレター - 2026年7月

2026年7月、ArbitrumとSolanaで合計約6790万ドルの損失をもたらすDeFiインシデントが3件発生。AFX Tradeはサプライチェーン攻撃でバリデータ署名権限が侵害され約2415万ドルの損失。OstiumのOLPボールトはオラクル基盤の侵害により約2375万ドルが流出。BonkDAOは攻撃者が440万ドルで議決権を取得し悪意ある資金移転を可決、約2000万ドルを失った。

〜3,950万ドルの損失:Allbridge、Wanchainなど|BlockSec週次レポート
Security Audits

〜3,950万ドルの損失:Allbridge、Wanchainなど|BlockSec週次レポート

2026年7月20〜26日の週に8件の重大なセキュリティインシデントが発生し、Solana、Ethereum、BNBチェーン、Arbitrum、Zilliqa、Cardanoで総額約3,950万ドルの損失が生じた。注目のAllbridge Coreインシデント(約165万ドル)では、同一のPoolアカウントがスワップの両ロールで受け入れられるSolanaの入力検証の欠陥が露呈し、デプロイ済みバイナリから分析が再構築された。他にはWanchain(約50万ドル)、Zilliqa(約40万ドル)、Lien Finance(約54万ドル)も分析された。

〜135万ドルの損失:BarnBridge、DeFiTuna | BlockSec ウィークリー
Security Insights

〜135万ドルの損失:BarnBridge、DeFiTuna | BlockSec ウィークリー

2026年7月13日〜19日のウィークリーレポートでは、EthereumとSolanaで計約135万ドルの損失をもたらした2件のセキュリティインシデントを取り上げます。SolanaのDeFiTunaは、ゼロ値ポジションを負債があっても健全と判定するバグを悪用され約57万ドルを失いました。BarnBridgeはEthereum上の廃止済みガバナンスシステムを攻撃者に利用され、悪意ある提案が可決されてUSDCが流出し約77.6万ドルの被害を受けました。

Best Security Auditor for Web3

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

BlockSec Audit