Reproduced Exploit
C-02: Missing packet ID in finalizeOpen causes NFT loss
Packet NFT stuck in contract; INSTANT_OPEN reverts; user loses NFT with no cards
Chain
Other
Category
untagged
Date
May 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: 62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho. Standalone Foundry PoC and full write-up: 62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho_exp in the
evm-hack-registrymirror.
| Field | Value |
|---|---|
| Protocol | RipIt |
| Severity | high |
| Source | AuditVault / https://github.com/pashov/audits/blob/master/team/md/RipIt-security-review_2025-05-10.md |
| Harm | Packet NFT stuck in contract; INSTANT_OPEN reverts; user loses NFT with no cards |
TL;DR#
Packet NFT stuck in contract; INSTANT_OPEN reverts; user loses NFT with no cards
Vulnerable code#
See the synthetic reproduction in test/62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho.sol — the blamed line is marked // @> VULN.
Root cause#
Faithful reduction of the AuditVault finding. The vulnerable line is preserved so the Playground locator points at the real bug, not scaffolding.
Attack walkthrough#
- Deploy the reduced protocol pieces via the
Exploitconstructor. run()performs the attack end-to-end andrequires the harm.
Diagrams#
Impact#
Packet NFT stuck in contract; INSTANT_OPEN reverts; user loses NFT with no cards
Taxonomy#
- severity/high
- sector/nft
- platform/auditvault
Sources#
- AuditVault finding: https://github.com/Auditware/AuditVault/blob/main/findings/62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho.md
- Original report: https://github.com/pashov/audits/blob/master/team/md/RipIt-security-review_2025-05-10.md
- Reduced from: pashov/audits RipIt-security-review_2025-05-10 (Packet.finalizeOpen)
Sources & further analysis#
Reproductions & code
- Standalone PoC + full trace: 62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho_exp (evm-hack-registry mirror).
- AuditVault finding: 62593-c-02-missing-packet-id-in-finalizeopen-causes-nft-loss-pasho.
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.