LegendaryMoneyMon token exploited via broken signature verification in NFT reward contract; attacker drained 24,306 MON (~$85.5K) using malformed signature.
Security & Exploits ·
An attacker drained 24,306 MON tokens—worth approximately $85.5K—from the LegendaryMoneyMon NFT reward contract by exploiting a signature verification vulnerability. The contract's admin variable was left uninitialized at address(0), allowing any malformed signature to pass validation; the attacker submitted a crafted signature with dummy values (v=27, r=s=0), triggering the claimReward() function to release tokens that were subsequently swapped to USDT via PancakeSwap V3.
The vulnerability lay in the contract's verify() function, which relied on ecrecover() to validate signatures by checking whether the recovered signer matched the unset admin address. Because ecrecover() returns address(0) on invalid input, any junk signature would satisfy the equality check. The token operates on a micro-cap scale with a 500K total supply and trades on an illiquid PancakeV3 pool.
The exploit exposes a common but critical oversight: failure to initialize privileged state variables before deploying signature-dependent logic. It remains unclear whether the contract was audited prior to deployment or if any recovery mechanism exists for affected users.