User-supplied parameters (fees, ratios, durations, amounts) are used without sanity bounds, enabling extreme/abusive values (e.g. 100% fee, zero duration) that break invariants.
function setFeeBps(uint b) external onlyOwner { require(b <= 1000, "max 10%"); feeBps=b; }
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0073 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.