Incidents

Other people's exploits, read so yours don't happen.

Each breakdown starts from the primary source: the post-mortem, the attack transactions, the fix. Then the one question that matters for your code: what check would have stopped it.

Missing access control Oct 6, 2026

Third-party MakerDAO keeper

$542.98K lost · Ethereum

One privileged function of a 2020 liquidation keeper lacked its auth check. An attacker settled four forgotten auctions and took 200 ETH.

ZK verifier bug Sep 24, 2026

Payy Network

$1.92M lost · Ethereum

A Barretenberg verifier bug let an attacker prove burns that never happened and withdraw 1.92M USDC, 73 days after the fix was released.

Integer truncation Sep 3, 2026

Notional V1

$1.73M lost · Ethereum

Two mintfCashPair calls left a debt of exactly -2^128, an unchecked uint128 cast made it zero, and a contract deprecated in 2022 paid out $1.73M.

Donation Attack Aug 30, 2026

Tectonic

$120.40M lost · Cronos

Direct TONIC transfers to the lending market increased the tTONIC exchange rate without minting new tokens, inflating collateral value by $120.4M.

Oracle And Exchange Rate Manipulation Aug 27, 2026

Moonwell

$8.70M lost · Base

Direct token donations inflated the receipt-token exchange rate while a thin-liquidity oracle let the same actor pump the collateral price.

Oracle signature verification Jul 11, 2026

Bonzo Lend

$9.05M lost · Hedera

An all-zero signature passed the oracle verifier, SAUCE was priced 10^12 times too high, and the lending pool was drained against 250 tokens.

Leaked key, weak attestation Jun 21, 2026

Taiko

$1.75M lost · Ethereum

An enclave key in a public repo and an attestation check that allowed debug mode let forged proofs withdraw $1.75M from the bridge.

Oracle Manipulation Oct 11, 2022

Mango Markets

$116.00M lost · Solana

Mango Markets lost $116 million because its lending module trusted a low-liquidity spot price that could be moved within a single transaction.

Give Atlant a task Could the same thing happen in your code? Get it checked →