DeFi Security · Vulnerability class
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.
The concept
Authentication has to rest on something the caller cannot fake. Asking the caller who it is, or trusting a sender address passed in by a forwarder, hands control to whoever can imitate the answer.
Defensive lessons
- Authenticate against addresses you control, never against the caller's own answer.
- Validate forwarded senders cryptographically.
- Do not let callers choose call targets and call data.
- Revoke old approvals and expire permissions.
Stored incidents
2026-10-06 · reported loss $543K (200 ETH)
MakerDAO flip keeper: an unprotected function handed an attacker control of dormant auction winningsIndependent analysis
2026-10-01 · reported loss $305K (114.09 ETH)
FlashLoopAdapter: a spoofable caller check in a Safe moduleIndependent analysis
2026-09-24 · reported loss $2.8M
Limit Break Payment Processor V2: forged sender through a trusted forwarderIndependent analysis
2026-09-11 · reported loss $770K (9.97 BTC)
Symbiosis Bitcoin Bridge: 46.1 billion unbacked syBTC from a 330-satoshi depositIndependent analysis