Signed/unsigned arithmetic confusion
Uniswap (v2 + v3)'s assessment for RD-F-018 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
V3: ToB Manticore verified BitMath and LiquidityMath properties; ABDK mathematical review included invariant checking. int24 ticks, uint160 sqrtPrice — carefully typed. No signed/unsigned confusion finding in any audit across V2/V3. 5-6 year exploit-free record. Confidence medium (no direct tool run).
Detail #
The use of specifically-typed integer types in V3 (int24 for ticks, uint160 for sqrtPrice, uint256 for liquidity) reduces the surface for signed/unsigned confusion. Trail of Bits' symbolic execution specifically targeted arithmetic properties. ABDK's mathematical review covered 159 issues without flagging signed/unsigned confusion at high severity. V2 uses simpler arithmetic with uint112 reserves and uint32 timestamps.
Sources #
- GitHubTrail of Bits — Manticore verification of math properties including arithmeticv3-core/audits/tob/README.md — Manticore arithmetic verificationretrieved 2026-05-12
Methodology #
Determine whether signed-integer conversions or comparisons where unsigned was intended exist in the deployed bytecode/source.
See the full factor methodology and distribution across all protocols →