Reproduced Exploit
Notional v4 — redeemNative reentrancy freezes yield tokens
redeemNative snapshots balance, swaps via a path including a malicious token that reenters initiateWithdraw (moves N yield tokens and decrements accounting). After return, burn subtracts (M+N) again → N tokens unaccounted/frozen.
Chain
Other
Category
untagged
Date
Jan 2025
Source
AuditVault
EVM Playground
Source-level debugger — step opcodes and Solidity in sync
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.
Source & credit. Reproduction of a public audit finding curated by AuditVault — the original finding: 63524-redeemnative-reentrancy-enables-permanent-fund-freeze-system. Standalone Foundry PoC and full write-up: 63524-redeemnative-reentrancy-enables-permanent-fund-freeze-system_exp in the
evm-hack-registrymirror.
Vulnerability classes: single-function reentrancy · locked-funds · accounting desync
Reproduction: reduced synthetic of AbstractYieldStrategy double-subtract path.
AuditVault taxonomy: severity/high · sector/lending · platform/mixbytes · single-function · locked-funds · reentrancy-guard
Key info#
| Impact | HIGH — yield tokens frozen (balance > s_yieldTokenBalance); share price distortion |
| Protocol | Notional Finance v4 AbstractYieldStrategy |
| Vulnerable code | _burnShares subtracts full pre-reentrancy delta after reentrancy already moved N |
| Bug class | Reentrancy during redeem trade |
| Finding | MixBytes · Notional v4 · #63524 |
TL;DR#
redeemNative snapshots balance, swaps via a path including a malicious token that reenters initiateWithdraw (moves N yield tokens and decrements accounting). After return, burn subtracts (M+N) again → N tokens unaccounted/frozen.
The vulnerable code#
s_yieldTokenBalance -= yieldTokensRedeemed; // @> VULN double-count after reentrancy
// FIX: nonReentrant on redeem/initiateWithdraw; restrict UniV2 path length
Diagrams#
Impact#
Permanent freeze of vault yield tokens; collateral health distortion and liquidation risk.
Sources#
- AuditVault #63524
- MixBytes Notional v4
- Fix: notional-finance/notional-v4#34
Sources & further analysis#
Reproductions & code
- Standalone PoC + full trace: 63524-redeemnative-reentrancy-enables-permanent-fund-freeze-system_exp (evm-hack-registry mirror).
- AuditVault finding: 63524-redeemnative-reentrancy-enables-permanent-fund-freeze-system.
Alerts & third-party analyses
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.