Checklists/EVM/Proxy & Upgradeability

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

📄
Want this as a PDF? DM me on Telegram →
Showing 33 of 33 vulnerabilities
#1

Storage Slot Collision Prevention

Critical

ERC-1967 compliance, reserved slots, proxy vs implementation storage separation

#2

Implementation Storage Gap Requirement

High

Add __gap array to all upgradeable contracts to prevent future storage collisions

#3

Multi-Level Inheritance Storage Layout

Medium

Storage layout consistency across inheritance hierarchy, variable ordering

#4

Unprotected Initializer Functions

Critical

Initializer access control, re-initialization prevention, initializer modifier

#5

Constructor vs Initializer Pattern

High

Configuration must be in initializer not constructor, state set in proxy storage

#6

Missing Initialization of Critical Variables

High

All critical state variables initialized during proxy deployment, no zero-value defaults

#7

Front-Running Initialization Attacks

High

Initialization front-running protection, atomic deploy-and-initialize

#8

Reentrancy During Initialization

High

Reentrancy guards on initializers, atomic state setup, consistent state

#9

Initializer Pattern Compliance

High

Use onlyInitializing modifier, chain parent initializers, disable on implementation

#10

Unrestricted Upgrade Permissions

Critical

Upgrade function access control, authorized callers only, role-based restrictions

#11

Storage Layout Incompatibility on Upgrade

High

Validate storage layout between old and new implementations, no variable reordering

#12

Missing Implementation Backward Compatibility

High

New implementations must inherit all required functions from previous versions

#13

Proxy Ownership Transfer on Upgrade

High

Ownership continuity across upgrades, admin address preservation

#14

Upgrade Gas Limit and Atomicity

Medium

Upgrade transactions within block gas limits, atomic upgrade-and-call

#15

Contract Existence Check Before Delegatecall

High

Verify target has code before delegatecall, extcodesize validation

#16

Delegatecall Context Preservation

Critical

msg.sender, msg.value, storage context preserved across delegatecall chains

#17

Delegatecall Return Data Validation

High

Check success boolean and returndata, bubble up revert reasons

#18

Proxy Admin Access Control

Critical

Admin function restrictions, multi-sig requirements, timelock for upgrades

#19

Admin Control Delegation Completeness

High

Full admin delegation to governance, no residual deployer privileges

#20

Signature Verification Across Implementations

High

Signatures bound to contract address, replay prevention across upgrades

#21

Implementation Upgrade Validation

High

Validate new implementation before upgrade, code audit gates, interface checks

#22

Unprotected Selfdestruct in Implementation

Critical

Implementation selfdestruct protection, access control on destroy functions

#23

Low-Level Call Contract Existence Validation

High

Validate target exists before call/delegatecall/staticcall, zero-address checks

#24

Proxy-Implementation Selector Clash

High

No 4-byte selector collisions between proxy and implementation functions

#25

Proxy Shadow Functions

High

Public proxy methods that shadow implementation functions, admin-only proxy calls

#26

CREATE2 Address Collision Risk

High

Predictable CREATE2 salts, address pre-computation attacks, deployment DoS

#27

Proxy Factory Validation Gaps

Medium

Factory input validation, implementation existence, registry consistency

#28

Fallback Return Data Forwarding

Medium

Validate and forward return data from implementation, prevent silent failures

#29

ETH Handling in Proxy Contracts

Medium

Payable receive/fallback functions, ETH forwarding to implementation

#30

Proxy Reentrancy Vulnerabilities

High

Reentrancy in delegatecall chains, cross-function reentrancy via proxy

#31

Proxy Address Tracking Misconfiguration

High

Proxy address registry consistency, correct address resolution

#32

Proxy Reuse Without Implementation Check

High

Validate implementation before proxy reuse, stale implementation references

#33

Immutable Value Handling in Proxies

Medium

Immutable 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.

oog
zealynx

Subscribe to Our Newsletter

Stay updated with our latest security insights and blog posts

© 2024 Zealynx