DeFi Security
Vulnerability classes
An educational taxonomy. Each incident is placed in a class from its verified root cause, never from its title.
- Oracle and spot-price manipulation
A protocol reads a price from a source that an attacker can move cheaply, or that is simply wrong, and then lends, mints or liquidates against it.
3 stored incidents
- Reentrancy
A contract calls out to another contract before it has finished updating its own books, and the callee calls back in to claim again.
1 stored incident
- Access control and caller trust
A function that moves value trusts a caller, a forwarded sender or a self-declared identity that it should have verified.
4 stored incidents
- Governance takeover
An attacker acquires enough voting power, cheaply or by exploiting thin participation, to pass a proposal that hands over contracts or funds.
2 stored incidents
- Flash-loan amplification
Borrowing a very large amount for a single transaction lets an attacker move a price or a balance, then undo the loan within the same block.
3 stored incidents
- Accounting and share-price errors
Internal records of who owns what drift apart from the real token balance or from each other, so someone can redeem more than they put in.
2 stored incidents
- Signature and replay
A signed message or proof is accepted in a context it was not meant for, or more than once.
0 stored incidents
- Bridge and cross-chain verification
A bridge, peg or proof system accepts evidence that a deposit or burn happened when it did not, and mints or pays out against it.
4 stored incidents
- Liquidation and collateral logic
Collateral is valued or liquidated using inputs that are wrong or manipulable, so healthy positions are seized or bad debt is created.
2 stored incidents
- Business logic flaws
The code does what it was written to do, but the design allows a sequence of legitimate actions that breaks an assumption.
1 stored incident
- Arithmetic, overflow and rounding
Numbers that do not fit their type, or that are cut or rounded in the wrong direction, create value that does not exist.
1 stored incident