The contract contains an owner-only function that can arbitrarily mint, drain, pause, or rewrite balances — a rug-pull or backdoor capability disguised among normal admin functions.
// Remove arbitrary drains; restrict to protocol-fee accounting only, // behind a timelock + multisig, with events and caps. function withdrawFees(address to) external onlyOwner whenNotPaused { uint256 amt = accruedFees; accruedFees = 0; emit FeesWithdrawn(to, amt); token.safeTransfer(to, amt); }
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0015 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.