Mixing tokens of different decimals (e.g. USDC 6 vs WETH 18) without normalization produces valuations off by orders of magnitude, enabling theft or mispricing.
uint8 d = IERC20Metadata(usdc).decimals(); uint v = amountUSDC * price / (10 ** d);
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0084 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.