What "access control" actually covers
OWASP defines this category as any failure to rigorously enforce who may invoke privileged behavior, under which conditions, and with which parameters. That's broader than missing onlyOwner modifiers. In practice, the category covers six distinct failure modes:
-
Missing or wrong modifiers on sensitive functions.
-
Caller validation against user-supplied values instead of
msg.sender. -
Unprotected initialization, including proxies that remain re-initializable.
-
Single-EOA admins with no multisig or timelock.
-
Privilege confusion across modules or cross-chain trust boundaries.
-
Missing validation on hook and callback entry points (e.g. Uniswap V4
onlyPoolManager).
Why it's still #1 in 2026
Access control held the top spot in OWASP's 2026 ranking because it produced both the highest frequency (30 incidents in the 2025 dataset) and one of the highest dollar totals (~$220M). Two incidents define the year:
-
Balancer V2 (Nov 2025) lost ~$128M when the
manageUserBalancefunction allowed attackers to setop.sendervalues that bypassed the intended caller check. (OWASP also cross-references this incident under SC07 because rounding amplified the exploit.) -
Zoth (Mar 2025) lost $8.4M when a compromised deployer EOA was used to upgrade
USD0PPSubVaultUpgradeableto a malicious implementation. That's a SC10 root cause (proxy upgrade) executed through an SC01 failure (single-EOA admin without multisig). -
Cork Protocol (May 2025) lost $11M-$12M because Uniswap V4 hook callbacks lacked
onlyPoolManagervalidation.
How AI auditors handle this category
EVMbench and related benchmarks show frontier LLMs catching the static version of this bug class reliably - missing modifiers, tx.origin use, public functions that should be internal. Where they still struggle is the systemic version: privileges that are technically present but wrong, modules that grant each other authority transitively, and hook/callback patterns where the caller should be a specific protocol-managed address. Those still need a human auditor who can model the trust graph.
See the SCH attack analysis at /attacks/access-control for a deeper walk-through of the patterns above.