Proxy & Upgradeability Security Checklist
33 security checks for proxy patterns including UUPS, Transparent Proxy, Beacon Proxy, Minimal Proxy (ERC-1167), and Diamond (ERC-2535). Covering storage safety, initialization, upgrade mechanisms, delegatecall, and access control.
🚨 Critical Threat Landscape
Proxy and upgradeability patterns are among the most exploited smart contract mechanisms:
• $350M+ lost to proxy-related exploits (Wormhole, Audius, etc.)
• 770+ upgrade findings across 3,671 proxy audit issues analyzed
• 564 initialization issues unprotected or missing initializers
• 176 storage collisions layout corruption across implementations
• 15% of findings are High+ Critical impact on protocol security
CATEGORIES
Storage Slot Collision Prevention
CriticalERC-1967 compliance, reserved slots, proxy vs implementation storage separation
Implementation Storage Gap Requirement
HighAdd __gap array to all upgradeable contracts to prevent future storage collisions
Multi-Level Inheritance Storage Layout
MediumStorage layout consistency across inheritance hierarchy, variable ordering
Unprotected Initializer Functions
CriticalInitializer access control, re-initialization prevention, initializer modifier
Constructor vs Initializer Pattern
HighConfiguration must be in initializer not constructor, state set in proxy storage
Missing Initialization of Critical Variables
HighAll critical state variables initialized during proxy deployment, no zero-value defaults
Front-Running Initialization Attacks
HighInitialization front-running protection, atomic deploy-and-initialize
Reentrancy During Initialization
HighReentrancy guards on initializers, atomic state setup, consistent state
Initializer Pattern Compliance
HighUse onlyInitializing modifier, chain parent initializers, disable on implementation
Unrestricted Upgrade Permissions
CriticalUpgrade function access control, authorized callers only, role-based restrictions
Storage Layout Incompatibility on Upgrade
HighValidate storage layout between old and new implementations, no variable reordering
Missing Implementation Backward Compatibility
HighNew implementations must inherit all required functions from previous versions
Proxy Ownership Transfer on Upgrade
HighOwnership continuity across upgrades, admin address preservation
Upgrade Gas Limit and Atomicity
MediumUpgrade transactions within block gas limits, atomic upgrade-and-call
Contract Existence Check Before Delegatecall
HighVerify target has code before delegatecall, extcodesize validation
Delegatecall Context Preservation
Criticalmsg.sender, msg.value, storage context preserved across delegatecall chains
Delegatecall Return Data Validation
HighCheck success boolean and returndata, bubble up revert reasons
Proxy Admin Access Control
CriticalAdmin function restrictions, multi-sig requirements, timelock for upgrades
Admin Control Delegation Completeness
HighFull admin delegation to governance, no residual deployer privileges
Signature Verification Across Implementations
HighSignatures bound to contract address, replay prevention across upgrades
Implementation Upgrade Validation
HighValidate new implementation before upgrade, code audit gates, interface checks
Unprotected Selfdestruct in Implementation
CriticalImplementation selfdestruct protection, access control on destroy functions
Low-Level Call Contract Existence Validation
HighValidate target exists before call/delegatecall/staticcall, zero-address checks
Proxy-Implementation Selector Clash
HighNo 4-byte selector collisions between proxy and implementation functions
Proxy Shadow Functions
HighPublic proxy methods that shadow implementation functions, admin-only proxy calls
CREATE2 Address Collision Risk
HighPredictable CREATE2 salts, address pre-computation attacks, deployment DoS
Proxy Factory Validation Gaps
MediumFactory input validation, implementation existence, registry consistency
Fallback Return Data Forwarding
MediumValidate and forward return data from implementation, prevent silent failures
ETH Handling in Proxy Contracts
MediumPayable receive/fallback functions, ETH forwarding to implementation
Proxy Reentrancy Vulnerabilities
HighReentrancy in delegatecall chains, cross-function reentrancy via proxy
Proxy Address Tracking Misconfiguration
HighProxy address registry consistency, correct address resolution
Proxy Reuse Without Implementation Check
HighValidate implementation before proxy reuse, stale implementation references
Immutable Value Handling in Proxies
MediumImmutable variables stored in bytecode not storage, value mismatch across proxies
Need a Professional Proxy & Upgradeability Audit?
Proxy patterns are among the most exploited smart contract mechanisms, with over $350M lost to proxy-related vulnerabilities. Get your upgradeable contracts audited by specialists who understand ERC-1967, UUPS, Diamond, and every proxy pattern.

