Reproduced Exploit

stNXM — attacker profits by manipulating Uniswap liquidity via slot0

dexBalances reads Uniswap V3 slot0 spot price to value LP inside totalAssets

Nov 2025Otheruntagged2 min read

Chain

Other

Category

untagged

Date

Nov 2025

Source

AuditVault

EVM Playground

Source-level debugger — step opcodes and Solidity in sync

evm-hack-analyzer

The attack is replayed in an in-browser EVM preloaded with the exact dumped fork state. The execution tree shows every call; step by Solidity line or by opcode across all depths — source, Stack, Memory, Storage, Balances (native / ERC-20 / NFT), Transient storage and Return value stay in sync. Click a tree node, opcode, or source line to jump. No backend, no live RPC.

Loading fork state…

Source & credit. Reproduction of a public audit finding curated by AuditVault — the original finding: 64079-h-1-attacker-can-profit-by-manipulating-uniswap-liquidity-sh. Standalone Foundry PoC and full write-up: 64079-h-1-attacker-can-profit-by-manipulating-uniswap-liquidity-sh_exp in the evm-hack-registry mirror.


Reproduction: self-contained Foundry PoC (forge-std only) — no fork. Full trace: output.txt.

AuditVault taxonomy: lang/solidity · platform/sherlock · severity/high · vuln/oracle/spot-price · trigger/flash-loan · genome: spot-price · price-manipulation


Key info#

ImpactHIGH — Inflated ERC4626 withdrawal paid from free liquidity after same-tx Uniswap slot0 manipulation; residual stakers lose value
ProtocolstNXM by EaseDeFi
Bug classdexBalances reads Uniswap V3 slot0 spot price to value LP inside totalAssets
FindingSherlock 0xpetern et al. (H-1) · #64079
Reporthttps://github.com/sherlock-audit/2025-11-stnxm-by-easedefi-judging
SourceAuditVault
StatusAudit finding — reproduced as a standalone local synthetic
Compiler^0.8.24 (PoC)

TL;DR#

dexBalances reads Uniswap V3 slot0 spot price to value LP inside totalAssets

HARM: Inflated ERC4626 withdrawal paid from free liquidity after same-tx Uniswap slot0 manipulation; residual stakers lose value


Root cause#

dexBalances reads Uniswap V3 slot0 spot price to value LP inside totalAssets

Preconditions#

Protocol-specific setup as described in the original finding (roles / managers / pending state in place).

Attack walkthrough#

See the synthetic test/64079-h-1-attacker-can-profit-by-manipulating-uniswap-liquidity-sh.sol and the Playground story beats. The @> VULN marker sits on the blamed executable line.

Diagrams#

sequenceDiagram participant A as Attacker participant P as Uniswap pool participant V as stNXM vault A->>V: requestWithdraw shares A->>P: large swap inflate reserve1 Note over V: slot0 spot price moves A->>V: withdrawFinalize V-->>A: inflated wNXM payout

Impact#

Inflated ERC4626 withdrawal paid from free liquidity after same-tx Uniswap slot0 manipulation; residual stakers lose value

Sources#


Sources & further analysis#

Reproductions & code

Alerts & third-party analyses

  • Web3Sec X hacked database: search.
  • Rekt leaderboard: search.
  • Solodit incident search: search.

These dashboards index community alerts tweets, post-mortems, and independent write-ups. Reach them through the protocol name above to cross-check this reproduction against other analyses.