Reproduced Exploit
StakeDAO — [C-01] Missing extra reward per token update on deposit
First user deposits and extra rewards are funded. Second user deposits a huge amount without the index updating first, then withdraws/claims — receives ~100k/100001 of rewards that should all go to the first user.
Chain
Other
Category
untagged
Date
Jul 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: 63598-c-01-missing-update-of-extra-reward-per-token-during-deposit. Standalone Foundry PoC and full write-up: 63598-c-01-missing-update-of-extra-reward-per-token-during-deposit_exp in the
evm-hack-registrymirror.
Vulnerability classes: reward-calculation · reward-theft · reward-accounting
Reproduction: self-contained Foundry PoC, forge-std only.
AuditVault taxonomy: severity/high · sector/staking · platform/pashov · reward-calculation · reward-theft
Key info#
| Impact | HIGH — new depositor steals nearly all pending extra rewards |
| Protocol | StakeDAO StrategyWrapper |
| Vulnerable code | _deposit checkpoints extraRewardPerToken without _updateExtraRewardState |
| Bug class | Stale reward index on deposit |
| Finding | Pashov · StakeDAO 2025-07-21 · #63598 |
TL;DR#
First user deposits and extra rewards are funded. Second user deposits a huge amount without the index updating first, then withdraws/claims — receives ~100k/100001 of rewards that should all go to the first user.
The vulnerable code#
// missing: _updateExtraRewardState(rewardTokens);
checkpoint.rewardPerTokenPaid[t] = extraRewardPerToken[t]; // @> VULN stale
Diagrams#
Impact#
Existing depositors lose fair share of extra rewards to flash depositors.
Sources#
Sources & further analysis#
Reproductions & code
- Standalone PoC + full trace: 63598-c-01-missing-update-of-extra-reward-per-token-during-deposit_exp (evm-hack-registry mirror).
- AuditVault finding: 63598-c-01-missing-update-of-extra-reward-per-token-during-deposit.
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.