Logic relies on an exact this.balance value (== or an invariant that the balance only changes via the contract's own functions). Ether can be force-fed via selfdestruct or a coinbase payment, breaking the equality and locking or mis-routing funds.
// require(address(this).balance == expected); // attacker selfdestructs a contract sending 1 wei to this address // -> balance != expected forever -> the function is bricked.
// track deposited value in a storage variable; never assume this.balance uint256 internal _accounted; // update on deposit/withdraw
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0251 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.