Wenn "SafeMint" unsicher wird: Lehren aus dem HypeBears-Sicherheitsvorfall

Wenn "SafeMint" unsicher wird: Lehren aus dem HypeBears-Sicherheitsvorfall

Am Morgen des 3. Februar (Zeitzone +8) meldete unser System eine Angriffstransaktion 0xfa97c3476aa8aeac662dae0cc3f0d3da48472ff4e7c55d0e305901ec37a2f704 auf den HypeBears NFT-Vertrag. Nach der Untersuchung stellten wir fest, dass es sich um einen Reentrancy-Angriff handelte, der durch die Funktion _safeMint von ERC721 verursacht wurde.

Die Grundursache

Das Projekt hat eine Beschränkung für die Anzahl von NFTs, die ein Konto prägen kann. Im Wesentlichen gibt es eine Map addressMinted, die protokolliert, ob ein Konto NFTs geprägt hat.

Beim Prägen von NFTs verwendet der Code die _safeMint-Funktion der OZ-Referenzimplementierung. Diese Funktion ist "sicher", da sie prüft, ob der Empfänger ERC721-Token empfangen kann. Dies kann verhindern, dass ein NFT an einen Vertrag geprägt wird, der keine ERC721-Token verarbeiten kann. Laut der Dokumentation:

Wenn an an einen Smart Contract verwiesen wird, muss dieser IERC721Receiver.onERC721Received implementieren, die bei einer sicheren Übertragung aufgerufen wird. Der folgende Code zeigt die OZ-Implementierung der Funktion _safeMint:

Diese externe Funktionsaufruf schafft jedoch eine Sicherheitslücke. Insbesondere kann der Angreifer einen Reentrant-Aufruf innerhalb des onERC721Received-Callbacks durchführen. Zum Beispiel kann der Angreifer in dem verwundbaren HypeBears-Vertrag die Funktion mintNFT im onERC721Received-Callback erneut aufrufen (da addressMinted noch nicht aktualisiert wurde).

Der Angriff

Der folgende Screenshot zeigt die Angriffstransaktion.

Lektionen

Das von SafeMint ausgehende Risiko wurde von Sicherheitsexperten diskutiert Link1 Link2. Dennoch sehen wir immer noch verwundbaren Code und Angriffe in der Praxis. Wie bei safeTransfer im QBridge-Sicherheitsvorfall gezeigt, garantiert die Verwendung einer sicheren Funktion keinen sicheren Vertrag 😃.

Sign up for the latest updates
Weekly Web3 Security Incident Roundup | Feb 9 – Feb 15, 2026

Weekly Web3 Security Incident Roundup | Feb 9 – Feb 15, 2026

During the week of February 9 to February 15, 2026, three blockchain security incidents were reported with total losses of ~$657K. All incidents occurred on the BNB Smart Chain and involved flawed business logic in DeFi token contracts. The primary causes included an unchecked balance withdrawal from an intermediary contract that allowed donation-based inflation of a liquidity addition targeted by a sandwich attack, a post-swap deflationary clawback that returned sold tokens to the caller while draining pool reserves to create a repeatable price-manipulation primitive, and a token transfer override that burned tokens directly from a Uniswap V2 pair's balance and force-synced reserves within the same transaction to artificially inflate the token price.

Top 10 "Awesome" Security Incidents in 2025

Top 10 "Awesome" Security Incidents in 2025

To help the community learn from what happened, BlockSec selected ten incidents that stood out most this year. These cases were chosen not only for the scale of loss, but also for the distinct techniques involved, the unexpected twists in execution, and the new or underexplored attack surfaces they revealed.

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

On August 29, 2025, Panoptic disclosed a Cantina bounty finding and confirmed that, with support from Cantina and Seal911, it executed a rescue operation on August 25 to secure roughly $400K in funds. The issue stemmed from a flaw in Panoptic’s position fingerprint calculation algorithm, which could have enabled incorrect position identification and downstream fund risk.