Highlights
Auth Bypass: 11 prior fixes. Scrutinize any change in this area.
contracts/samples/TokenPaymaster.sol: most-fixed (4 issues). Treat as high-risk during review.
20 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Auth Bypass: Incomplete serialization of UserOperation fields during hashing allowed malicious actors to perform replay and parameter-tampering attacks on the paymaster signatures. Subsequent patches bound the signed payload to chainid, sender nonces, and explicit timestamps.
Access Control: Using local memory references (DepositInfo memory) instead of storage references allowed internal state to be manipulated without persisting updates, which risked completely draining the core EntryPoint deposits.
Reentrancy: Critical execution functions handleOps and handleAggregatedOps were vulnerable to reentrancy during user operations. This was addressed by introducing explicit OpenZeppelin nonReentrant modifiers and later migrating to transient storage-based reentrancy guards.