Off-chain or on-chain vouchers/nonces are not strictly consumed, or a nonce is reused/not incremented, allowing the same authorization to spend funds twice.
function redeem(uint nonce) external {
require(!used[nonce], "used"); used[nonce] = true; pay(msg.sender);
}
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0069 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.