๐จSlowMist TI Alert๐จ
๐ธ
@nimiq Loss: ~$50,463
๐ Root Cause: ERC20PermitHTLCHandler's `execute()` discards all five calldata parameters (including signature & nonce) and performs no EIP-712 signature, nonce, or business pre-check. The only signature/nonce validation lived in its `preRelayedCall()`, but GSN RelayHub calls `preRelayedCall` on the attacker-specified paymaster. So the attacker set himself as paymaster, fully bypassing that check, used 1 MATIC GSN relay registration to pass `onlyRelayHub` and forged `request.from = victim`, causing `openPrivate()` to call `token.transferFrom(victim, handler, full balance)`.
Finally, the attacker directly called the `redeem` function to withdraw these funds using the hosted secret they had crafted.
๐ Attacker: 0x2258491525C21f334c5a2dc22CE55e55023FC45D
๐ Victim: 0x24Cb173Ae221AeA93369f34bdcF0Ddb35b436773
๐ Vulnerable Contract: 0x0cFD862bE942846Cebad797d7c1BC6e47714959b, 0xf615bd7eA00C4Cc7F39fAAD0895Db5f40891359f
Powered by
Tx: