An inbound cross-chain message is executed without recording and checking a per-message unique id/nonce. The same proof/message can be submitted repeatedly to mint or release funds multiple times.
// receiveMessage(proof) mints 100 to user, no processed-map. // attacker resubmits the identical proof N times -> mints 100*N.
require(!processed[msgId], "replayed"); processed[msgId] = true; _release(to, amount);
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0245 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.