Cyber Risks · Trail of Bits Blog

Contract upgrade anti-patterns

Summary: Trail of Bits is disclosing a previously unknown flaw in the Zeppelin proxy upgrade pattern, which it says affects all Zeppelin implementations it investigated: the proxy does not check that the target contract exists before returning, so a failed call can report success. The firm argues that both common upgrade families, data separation and delegatecall-based proxies, add significant complexity and introduce bugs, citing a client whose data contract made a feature impossible to upgrade and a scenario in which an attacker deposits 10,000 tokens to an exchange that were never transferred.

Key Takeaway: The disclosed flaw lets a call to a misconfigured or destroyed proxy return success with no data, and the article walks through how that alone can let an attacker with no tokens collect 10,000 tokens' worth of credit from an exchange and sell them for free ether.

Read the original at Trail of Bits Blog ↗