★ Rescue/emergencyWithdraw without timelock
Uniswap (v2 + v3)'s assessment for RD-F-041 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
V2: not applicable (no admin, no rescue function). V3: no rescue or emergencyWithdraw on any contract — Factory, Pools, NFPM, UniversalRouter, Permit2. All core contracts are immutable with no token recovery function. Combined: green.
Detail #
V2 Factory: no rescue/emergency function (no admin at all; feeToSetter=address(0)). V3 Factory: no rescue function in source. V3 Pools: no rescue function. NonfungiblePositionManager (0xC36442b4): no rescue/emergency; standard NFT functions only. UniversalRouter (0x66a9893c): stateless immutable router, no rescue/emergency. Permit2 (0x000000002): permissionless utility contract, no pause/rescue. V3FeeAdapter: collect/claim functions route fees, not rescue arbitrary tokens. No privileged function on any contract can drain arbitrary user funds.
Sources #
- EtherscanPermit2 contract on EtherscanPermit2: no pause/rescue functions; permissionless utility contractretrieved 2026-04-29
- NonfungiblePositionManager on EtherscanNonfungiblePositionManager: no rescue; standard NFT functions onlyretrieved 2026-04-29
- Uniswap Governance ProcessUniswap governance docs — 2-day timelock enforced on all admin actionsretrieved 2026-05-11
- UniversalRouter contract on EtherscanUniversalRouter: no rescue/emergency functions; stateless immutable routerretrieved 2026-04-29
Methodology #
Determine whether a `rescue(…)` or `emergencyWithdraw(…)` function exists callable by admin without a timelock delay on execution.
See the full factor methodology and distribution across all protocols →