TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019b3836-5d7d-7355-87c3-cda815ee49af

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:04 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
2
Validated
2
Source
Bytecode only
Review Backing
Not yet
Best current signal
Untrusted CALL target/value reachable
crit 0 high 2 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
9339 artifact.fetch complete 1 / 3 3 months ago
9340 tool.cast_disasm complete 1 / 3 3 months ago
83056 analysis.bundle complete 1 / 3 1 week ago
83057 capability.graph complete 1 / 3 1 week ago
83058 detector.run complete 1 / 3 1 week ago
83059 validation.fork complete 1 / 3 1 week ago
113671 report.consolidate complete 1 / 6 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-v_2awabv
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c9b-124b-78c2-9126-708f8e8fe6ef
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T07:46:01.380129+00:00",
        "returncode": 1
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 3564,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": null,
    "no_findings": null,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
1
Total opcodes
1246
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00ae
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x06fdde03
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x00ba
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x095ea7b3
00000025: EQ
00000026: PUSH2 0x0118
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x23b872dd
00000030: EQ
00000031: PUSH2 0x018c
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x313ce567
0000003b: EQ
0000003c: PUSH2 0x0277
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x6f0b5180
00000046: EQ
00000047: PUSH2 0x0283
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x70a08231
00000051: EQ
00000052: PUSH2 0x029c
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x95d89b41
0000005c: EQ
0000005d: PUSH2 0x02ca
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x98d5fdca
00000067: EQ
00000068: PUSH2 0x0328
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0xa6f9dae1
00000072: EQ
00000073: PUSH2 0x0343
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0xa9059cbb
0000007d: EQ
0000007e: PUSH2 0x0385
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0xbbe4fd50
00000088: EQ
00000089: PUSH2 0x042b
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xc4e41b22
00000093: EQ
00000094: PUSH2 0x0433
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xdd62ed3e
0000009e: EQ
0000009f: PUSH2 0x043e
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xf3fef3a3
000000a9: EQ
000000aa: PUSH2 0x0472
000000ad: JUMPI
000000ae: JUMPDEST
000000af: PUSH2 0x04ab
000000b2: PUSH2 0x04ad
000000b5: CALLER
000000b6: PUSH2 0x028a
000000b9: JUMP
000000ba: JUMPDEST
000000bb: PUSH1 0x40
000000bd: DUP1
000000be: MLOAD
000000bf: PUSH1 0x04
000000c1: DUP1
000000c2: SLOAD
000000c3: PUSH1 0x20
000000c5: PUSH1 0x02
000000c7: PUSH1 0x01
000000c9: DUP4
000000ca: AND
000000cb: ISZERO
000000cc: PUSH2 0x0100
000000cf: MUL
000000d0: PUSH1 0x00
000000d2: NOT
000000d3: ADD
000000d4: SWAP1
000000d5: SWAP3
000000d6: AND
000000d7: SWAP2
000000d8: SWAP1
000000d9: SWAP2
000000da: DIV
000000db: PUSH1 0x1f
000000dd: DUP2
000000de: ADD
000000df: DUP3
000000e0: SWAP1
000000e1: DIV
000000e2: DUP3
000000e3: MUL
000000e4: DUP5
000000e5: ADD
000000e6: DUP3
000000e7: ADD
000000e8: SWAP1
000000e9: SWAP5
000000ea: MSTORE
000000eb: DUP4
000000ec: DUP4
000000ed: MSTORE
000000ee: PUSH2 0x04af
000000f1: SWAP4
000000f2: SWAP1
000000f3: DUP4
000000f4: ADD
000000f5: DUP3
000000f6: DUP3
000000f7: DUP1
000000f8: ISZERO
000000f9: PUSH2 0x05d4
000000fc: JUMPI
000000fd: DUP1
000000fe: PUSH1 0x1f
00000100: LT
00000101: PUSH2 0x05a9
00000104: JUMPI
00000105: PUSH2 0x0100
00000108: DUP1
00000109: DUP4
0000010a: SLOAD
0000010b: DIV
0000010c: MUL
0000010d: DUP4
0000010e: MSTORE
0000010f: SWAP2
00000110: PUSH1 0x20
00000112: ADD
00000113: SWAP2
00000114: PUSH2 0x05d4
00000117: JUMP
00000118: JUMPDEST
00000119: PUSH2 0x051d
0000011c: PUSH1 0x04
0000011e: CALLDATALOAD
0000011f: PUSH1 0x24
00000121: CALLDATALOAD
00000122: PUSH1 0x01
00000124: PUSH1 0xa0
00000126: PUSH1 0x02
00000128: EXP
00000129: SUB
0000012a: CALLER
0000012b: DUP2
0000012c: AND
0000012d: PUSH1 0x00
0000012f: DUP2
00000130: DUP2
00000131: MSTORE
00000132: PUSH1 0x02
00000134: PUSH1 0x20
00000136: SWAP1
00000137: DUP2
00000138: MSTORE
00000139: PUSH1 0x40
0000013b: DUP1
0000013c: DUP4
0000013d: KECCAK256
0000013e: SWAP5
0000013f: DUP8
00000140: AND
00000141: DUP1
00000142: DUP5
00000143: MSTORE
00000144: SWAP5
00000145: DUP3
00000146: MSTORE
00000147: DUP1
00000148: DUP4
00000149: KECCAK256
0000014a: DUP7
0000014b: SWAP1
0000014c: SSTORE
0000014d: DUP1
0000014e: MLOAD
0000014f: DUP7
00000150: DUP2
00000151: MSTORE
00000152: SWAP1
00000153: MLOAD
00000154: SWAP3
00000155: SWAP5
00000156: SWAP4
00000157: SWAP3
00000158: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000179: SWAP3
0000017a: SWAP2
0000017b: DUP2
0000017c: SWAP1
0000017d: SUB
0000017e: SWAP1
0000017f: SWAP2
00000180: ADD
00000181: SWAP1
00000182: LOG3
00000183: POP
00000184: PUSH1 0x01
00000186: JUMPDEST
00000187: SWAP3
00000188: SWAP2
00000189: POP
0000018a: POP
0000018b: JUMP
0000018c: JUMPDEST
0000018d: PUSH2 0x051d
00000190: PUSH1 0x04
00000192: CALLDATALOAD
00000193: PUSH1 0x24
00000195: CALLDATALOAD
00000196: PUSH1 0x44
00000198: CALLDATALOAD
00000199: PUSH1 0x01
0000019b: PUSH1 0xa0
0000019d: PUSH1 0x02
0000019f: EXP
000001a0: SUB
000001a1: DUP4
000001a2: AND
000001a3: PUSH1 0x00
000001a5: SWAP1
000001a6: DUP2
000001a7: MSTORE
000001a8: PUSH1 0x01
000001aa: PUSH1 0x20
000001ac: MSTORE
000001ad: PUSH1 0x40
000001af: DUP2
000001b0: KECCAK256
000001b1: SLOAD
000001b2: DUP3
000001b3: SWAP1
000001b4: LT
000001b5: DUP1
000001b6: ISZERO
000001b7: SWAP1
000001b8: PUSH2 0x01df
000001bb: JUMPI
000001bc: POP
000001bd: PUSH1 0x02
000001bf: PUSH1 0x20
000001c1: SWAP1
000001c2: DUP2
000001c3: MSTORE
000001c4: PUSH1 0x40
000001c6: DUP1
000001c7: DUP4
000001c8: KECCAK256
000001c9: PUSH1 0x01
000001cb: PUSH1 0xa0
000001cd: PUSH1 0x02
000001cf: EXP
000001d0: SUB
000001d1: CALLER
000001d2: AND
000001d3: DUP5
000001d4: MSTORE
000001d5: SWAP1
000001d6: SWAP2
000001d7: MSTORE
000001d8: DUP2
000001d9: KECCAK256
000001da: SLOAD
000001db: DUP3
000001dc: SWAP1
000001dd: LT
000001de: ISZERO
000001df: JUMPDEST
000001e0: DUP1
000001e1: ISZERO
000001e2: PUSH2 0x01eb
000001e5: JUMPI
000001e6: POP
000001e7: PUSH1 0x00
000001e9: DUP3
000001ea: GT
000001eb: JUMPDEST
000001ec: ISZERO
000001ed: PUSH2 0x05dc
000001f0: JUMPI
000001f1: PUSH1 0x01
000001f3: PUSH1 0xa0
000001f5: PUSH1 0x02
000001f7: EXP
000001f8: SUB
000001f9: DUP5
000001fa: DUP2
000001fb: AND
000001fc: PUSH1 0x00
000001fe: DUP2
000001ff: DUP2
00000200: MSTORE
00000201: PUSH1 0x01
00000203: PUSH1 0x20
00000205: SWAP1
00000206: DUP2
00000207: MSTORE
00000208: PUSH1 0x40
0000020a: DUP1
0000020b: DUP4
0000020c: KECCAK256
0000020d: DUP1
0000020e: SLOAD
0000020f: DUP9
00000210: SWAP1
00000211: SUB
00000212: SWAP1
00000213: SSTORE
00000214: DUP8
00000215: DUP6
00000216: AND
00000217: DUP1
00000218: DUP5
00000219: MSTORE
0000021a: DUP2
0000021b: DUP5
0000021c: KECCAK256
0000021d: DUP9
0000021e: SWAP1
0000021f: SSTORE
00000220: DUP5
00000221: DUP5
00000222: MSTORE
00000223: PUSH1 0x02
00000225: DUP4
00000226: MSTORE
00000227: DUP2
00000228: DUP5
00000229: KECCAK256
0000022a: CALLER
0000022b: SWAP7
0000022c: SWAP1
0000022d: SWAP7
0000022e: AND
0000022f: DUP5
00000230: MSTORE
00000231: SWAP5
00000232: DUP3
00000233: MSTORE
00000234: SWAP2
00000235: DUP3
00000236: SWAP1
00000237: KECCAK256
00000238: DUP1
00000239: SLOAD
0000023a: DUP8
0000023b: SWAP1
0000023c: SUB
0000023d: SWAP1
0000023e: SSTORE
0000023f: DUP2
00000240: MLOAD
00000241: DUP7
00000242: DUP2
00000243: MSTORE
00000244: SWAP2
00000245: MLOAD
00000246: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000267: SWAP3
00000268: DUP2
00000269: SWAP1
0000026a: SUB
0000026b: SWAP1
0000026c: SWAP2
0000026d: ADD
0000026e: SWAP1
0000026f: LOG3
00000270: POP
00000271: PUSH1 0x01
00000273: PUSH2 0x05e0
00000276: JUMP
00000277: JUMPDEST
00000278: PUSH2 0x0531
0000027b: PUSH1 0x05
0000027d: SLOAD
0000027e: PUSH1 0xff
00000280: AND
00000281: DUP2
00000282: JUMP
00000283: JUMPDEST
00000284: PUSH2 0x04ab
00000287: PUSH1 0x04
00000289: CALLDATALOAD
0000028a: JUMPDEST
0000028b: PUSH1 0x08
0000028d: SLOAD
0000028e: PUSH1 0x00
00000290: SWAP1
00000291: TIMESTAMP
00000292: LT
00000293: ISZERO
00000294: PUSH2 0x057c
00000297: JUMPI
00000298: PUSH2 0x0002
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH1 0x04
0000029f: CALLDATALOAD
000002a0: PUSH1 0x01
000002a2: PUSH1 0xa0
000002a4: PUSH1 0x02
000002a6: EXP
000002a7: SUB
000002a8: AND
000002a9: PUSH1 0x00
000002ab: SWAP1
000002ac: DUP2
000002ad: MSTORE
000002ae: PUSH1 0x01
000002b0: PUSH1 0x20
000002b2: MSTORE
000002b3: PUSH1 0x40
000002b5: SWAP1
000002b6: KECCAK256
000002b7: SLOAD
000002b8: JUMPDEST
000002b9: PUSH1 0x40
000002bb: DUP1
000002bc: MLOAD
000002bd: SWAP2
000002be: DUP3
000002bf: MSTORE
000002c0: MLOAD
000002c1: SWAP1
000002c2: DUP2
000002c3: SWAP1
000002c4: SUB
000002c5: PUSH1 0x20
000002c7: ADD
000002c8: SWAP1
000002c9: RETURN
000002ca: JUMPDEST
000002cb: PUSH2 0x04af
000002ce: PUSH1 0x06
000002d0: DUP1
000002d1: SLOAD
000002d2: PUSH1 0x40
000002d4: DUP1
000002d5: MLOAD
000002d6: PUSH1 0x20
000002d8: PUSH1 0x02
000002da: PUSH1 0x00
000002dc: NOT
000002dd: PUSH1 0x01
000002df: DUP7
000002e0: AND
000002e1: ISZERO
000002e2: PUSH2 0x0100
000002e5: MUL
000002e6: ADD
000002e7: SWAP1
000002e8: SWAP5
000002e9: AND
000002ea: SWAP4
000002eb: SWAP1
000002ec: SWAP4
000002ed: DIV
000002ee: PUSH1 0x1f
000002f0: DUP2
000002f1: ADD
000002f2: DUP5
000002f3: SWAP1
000002f4: DIV
000002f5: DUP5
000002f6: MUL
000002f7: DUP3
000002f8: ADD
000002f9: DUP5
000002fa: ADD
000002fb: SWAP1
000002fc: SWAP3
000002fd: MSTORE
000002fe: DUP2
000002ff: DUP2
00000300: MSTORE
00000301: SWAP3
00000302: SWAP2
00000303: DUP4
00000304: ADD
00000305: DUP3
00000306: DUP3
00000307: DUP1
00000308: ISZERO
00000309: PUSH2 0x05d4
0000030c: JUMPI
0000030d: DUP1
0000030e: PUSH1 0x1f
00000310: LT
00000311: PUSH2 0x05a9
00000314: JUMPI
00000315: PUSH2 0x0100
00000318: DUP1
00000319: DUP4
0000031a: SLOAD
0000031b: DIV
0000031c: MUL
0000031d: DUP4
0000031e: MSTORE
0000031f: SWAP2
00000320: PUSH1 0x20
00000322: ADD
00000323: SWAP2
00000324: PUSH2 0x05d4
00000327: JUMP
00000328: JUMPDEST
00000329: PUSH2 0x02b8
0000032c: JUMPDEST
0000032d: PUSH1 0x08
0000032f: SLOAD
00000330: PUSH1 0x00
00000332: SWAP1
00000333: DUP2
00000334: SWAP1
00000335: DUP2
00000336: SWAP1
00000337: TIMESTAMP
00000338: LT
00000339: ISZERO
0000033a: PUSH2 0x05e7
0000033d: JUMPI
0000033e: JUMPDEST
0000033f: POP
00000340: POP
00000341: SWAP1
00000342: JUMP
00000343: JUMPDEST
00000344: PUSH2 0x04ab
00000347: PUSH1 0x04
00000349: CALLDATALOAD
0000034a: PUSH1 0x03
0000034c: SLOAD
0000034d: PUSH1 0x01
0000034f: PUSH1 0xa0
00000351: PUSH1 0x02
00000353: EXP
00000354: SUB
00000355: SWAP1
00000356: DUP2
00000357: AND
00000358: CALLER
00000359: SWAP2
0000035a: SWAP1
0000035b: SWAP2
0000035c: AND
0000035d: EQ
0000035e: ISZERO
0000035f: PUSH2 0x0382
00000362: JUMPI
00000363: PUSH1 0x03
00000365: DUP1
00000366: SLOAD
00000367: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000037c: NOT
0000037d: AND
0000037e: DUP3
0000037f: OR
00000380: SWAP1
00000381: SSTORE
00000382: JUMPDEST
00000383: POP
00000384: JUMP
00000385: JUMPDEST
00000386: PUSH2 0x051d
00000389: PUSH1 0x04
0000038b: CALLDATALOAD
0000038c: PUSH1 0x24
0000038e: CALLDATALOAD
0000038f: PUSH1 0x01
00000391: PUSH1 0xa0
00000393: PUSH1 0x02
00000395: EXP
00000396: SUB
00000397: CALLER
00000398: AND
00000399: PUSH1 0x00
0000039b: SWAP1
0000039c: DUP2
0000039d: MSTORE
0000039e: PUSH1 0x01
000003a0: PUSH1 0x20
000003a2: MSTORE
000003a3: PUSH1 0x40
000003a5: DUP2
000003a6: KECCAK256
000003a7: SLOAD
000003a8: DUP3
000003a9: SWAP1
000003aa: LT
000003ab: DUP1
000003ac: ISZERO
000003ad: SWAP1
000003ae: PUSH2 0x03b7
000003b1: JUMPI
000003b2: POP
000003b3: PUSH1 0x00
000003b5: DUP3
000003b6: GT
000003b7: JUMPDEST
000003b8: ISZERO
000003b9: PUSH2 0x06c2
000003bc: JUMPI
000003bd: PUSH1 0x01
000003bf: PUSH1 0xa0
000003c1: PUSH1 0x02
000003c3: EXP
000003c4: SUB
000003c5: CALLER
000003c6: DUP2
000003c7: AND
000003c8: PUSH1 0x00
000003ca: DUP2
000003cb: DUP2
000003cc: MSTORE
000003cd: PUSH1 0x01
000003cf: PUSH1 0x20
000003d1: SWAP1
000003d2: DUP2
000003d3: MSTORE
000003d4: PUSH1 0x40
000003d6: DUP1
000003d7: DUP4
000003d8: KECCAK256
000003d9: DUP1
000003da: SLOAD
000003db: DUP9
000003dc: SWAP1
000003dd: SUB
000003de: SWAP1
000003df: SSTORE
000003e0: SWAP4
000003e1: DUP8
000003e2: AND
000003e3: DUP1
000003e4: DUP4
000003e5: MSTORE
000003e6: SWAP2
000003e7: DUP5
000003e8: SWAP1
000003e9: KECCAK256
000003ea: DUP1
000003eb: SLOAD
000003ec: DUP8
000003ed: ADD
000003ee: SWAP1
000003ef: SSTORE
000003f0: DUP4
000003f1: MLOAD
000003f2: DUP7
000003f3: DUP2
000003f4: MSTORE
000003f5: SWAP4
000003f6: MLOAD
000003f7: SWAP2
000003f8: SWAP4
000003f9: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000041a: SWAP3
0000041b: SWAP1
0000041c: DUP2
0000041d: SWAP1
0000041e: SUB
0000041f: SWAP1
00000420: SWAP2
00000421: ADD
00000422: SWAP1
00000423: LOG3
00000424: POP
00000425: PUSH1 0x01
00000427: PUSH2 0x0186
0000042a: JUMP
0000042b: JUMPDEST
0000042c: PUSH2 0x02b8
0000042f: TIMESTAMP
00000430: JUMPDEST
00000431: SWAP1
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH2 0x02b8
00000437: PUSH1 0x00
00000439: SLOAD
0000043a: PUSH2 0x0430
0000043d: JUMP
0000043e: JUMPDEST
0000043f: PUSH2 0x02b8
00000442: PUSH1 0x04
00000444: CALLDATALOAD
00000445: PUSH1 0x24
00000447: CALLDATALOAD
00000448: PUSH1 0x01
0000044a: PUSH1 0xa0
0000044c: PUSH1 0x02
0000044e: EXP
0000044f: SUB
00000450: DUP3
00000451: DUP2
00000452: AND
00000453: PUSH1 0x00
00000455: SWAP1
00000456: DUP2
00000457: MSTORE
00000458: PUSH1 0x02
0000045a: PUSH1 0x20
0000045c: SWAP1
0000045d: DUP2
0000045e: MSTORE
0000045f: PUSH1 0x40
00000461: DUP1
00000462: DUP4
00000463: KECCAK256
00000464: SWAP4
00000465: DUP6
00000466: AND
00000467: DUP4
00000468: MSTORE
00000469: SWAP3
0000046a: SWAP1
0000046b: MSTORE
0000046c: KECCAK256
0000046d: SLOAD
0000046e: PUSH2 0x0186
00000471: JUMP
00000472: JUMPDEST
00000473: PUSH2 0x04ab
00000476: PUSH1 0x04
00000478: CALLDATALOAD
00000479: PUSH1 0x24
0000047b: CALLDATALOAD
0000047c: PUSH1 0x03
0000047e: SLOAD
0000047f: PUSH1 0x01
00000481: PUSH1 0xa0
00000483: PUSH1 0x02
00000485: EXP
00000486: SUB
00000487: SWAP1
00000488: DUP2
00000489: AND
0000048a: CALLER
0000048b: SWAP2
0000048c: SWAP1
0000048d: SWAP2
0000048e: AND
0000048f: EQ
00000490: ISZERO
00000491: PUSH2 0x0578
00000494: JUMPI
00000495: DUP1
00000496: ADDRESS
00000497: PUSH1 0x01
00000499: PUSH1 0xa0
0000049b: PUSH1 0x02
0000049d: EXP
0000049e: SUB
0000049f: AND
000004a0: BALANCE
000004a1: LT
000004a2: ISZERO
000004a3: PUSH2 0x06ca
000004a6: JUMPI
000004a7: PUSH2 0x0002
000004aa: JUMP
000004ab: JUMPDEST
000004ac: STOP
000004ad: JUMPDEST
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH1 0x40
000004b2: MLOAD
000004b3: DUP1
000004b4: DUP1
000004b5: PUSH1 0x20
000004b7: ADD
000004b8: DUP3
000004b9: DUP2
000004ba: SUB
000004bb: DUP3
000004bc: MSTORE
000004bd: DUP4
000004be: DUP2
000004bf: DUP2
000004c0: MLOAD
000004c1: DUP2
000004c2: MSTORE
000004c3: PUSH1 0x20
000004c5: ADD
000004c6: SWAP2
000004c7: POP
000004c8: DUP1
000004c9: MLOAD
000004ca: SWAP1
000004cb: PUSH1 0x20
000004cd: ADD
000004ce: SWAP1
000004cf: DUP1
000004d0: DUP4
000004d1: DUP4
000004d2: DUP3
000004d3: SWAP1
000004d4: PUSH1 0x00
000004d6: PUSH1 0x04
000004d8: PUSH1 0x20
000004da: DUP5
000004db: PUSH1 0x1f
000004dd: ADD
000004de: DIV
000004df: PUSH1 0x0f
000004e1: MUL
000004e2: PUSH1 0x03
000004e4: ADD
000004e5: CALL
000004e6: POP
000004e7: SWAP1
000004e8: POP
000004e9: SWAP1
000004ea: DUP2
000004eb: ADD
000004ec: SWAP1
000004ed: PUSH1 0x1f
000004ef: AND
000004f0: DUP1
000004f1: ISZERO
000004f2: PUSH2 0x050f
000004f5: JUMPI
000004f6: DUP1
000004f7: DUP3
000004f8: SUB
000004f9: DUP1
000004fa: MLOAD
000004fb: PUSH1 0x01
000004fd: DUP4
000004fe: PUSH1 0x20
00000500: SUB
00000501: PUSH2 0x0100
00000504: EXP
00000505: SUB
00000506: NOT
00000507: AND
00000508: DUP2
00000509: MSTORE
0000050a: PUSH1 0x20
0000050c: ADD
0000050d: SWAP2
0000050e: POP
0000050f: JUMPDEST
00000510: POP
00000511: SWAP3
00000512: POP
00000513: POP
00000514: POP
00000515: PUSH1 0x40
00000517: MLOAD
00000518: DUP1
00000519: SWAP2
0000051a: SUB
0000051b: SWAP1
0000051c: RETURN
0000051d: JUMPDEST
0000051e: PUSH1 0x40
00000520: DUP1
00000521: MLOAD
00000522: SWAP2
00000523: ISZERO
00000524: ISZERO
00000525: DUP3
00000526: MSTORE
00000527: MLOAD
00000528: SWAP1
00000529: DUP2
0000052a: SWAP1
0000052b: SUB
0000052c: PUSH1 0x20
0000052e: ADD
0000052f: SWAP1
00000530: RETURN
00000531: JUMPDEST
00000532: PUSH1 0x40
00000534: DUP1
00000535: MLOAD
00000536: PUSH1 0xff
00000538: SWAP1
00000539: SWAP3
0000053a: AND
0000053b: DUP3
0000053c: MSTORE
0000053d: MLOAD
0000053e: SWAP1
0000053f: DUP2
00000540: SWAP1
00000541: SUB
00000542: PUSH1 0x20
00000544: ADD
00000545: SWAP1
00000546: RETURN
00000547: JUMPDEST
00000548: PUSH1 0x00
0000054a: DUP1
0000054b: SLOAD
0000054c: CALLVALUE
0000054d: SWAP3
0000054e: SWAP1
0000054f: SWAP3
00000550: MUL
00000551: SWAP3
00000552: SWAP1
00000553: SWAP3
00000554: DIV
00000555: SWAP1
00000556: DUP2
00000557: ADD
00000558: DUP3
00000559: SSTORE
0000055a: PUSH1 0x01
0000055c: PUSH1 0xa0
0000055e: PUSH1 0x02
00000560: EXP
00000561: SUB
00000562: DUP5
00000563: AND
00000564: DUP3
00000565: MSTORE
00000566: PUSH1 0x01
00000568: PUSH1 0x20
0000056a: MSTORE
0000056b: PUSH1 0x40
0000056d: SWAP1
0000056e: SWAP2
0000056f: KECCAK256
00000570: DUP1
00000571: SLOAD
00000572: DUP3
00000573: ADD
00000574: SWAP1
00000575: SSTORE
00000576: SWAP1
00000577: POP
00000578: JUMPDEST
00000579: POP
0000057a: POP
0000057b: JUMP
0000057c: JUMPDEST
0000057d: PUSH1 0x09
0000057f: SLOAD
00000580: TIMESTAMP
00000581: LT
00000582: PUSH2 0x058a
00000585: JUMPI
00000586: PUSH2 0x0002
00000589: JUMP
0000058a: JUMPDEST
0000058b: CALLVALUE
0000058c: PUSH1 0x00
0000058e: EQ
0000058f: ISZERO
00000590: PUSH2 0x0598
00000593: JUMPI
00000594: PUSH2 0x0002
00000597: JUMP
00000598: JUMPDEST
00000599: PUSH8 0x0de0b6b3a7640000
000005a2: PUSH2 0x0547
000005a5: PUSH2 0x032c
000005a8: JUMP
000005a9: JUMPDEST
000005aa: DUP3
000005ab: ADD
000005ac: SWAP2
000005ad: SWAP1
000005ae: PUSH1 0x00
000005b0: MSTORE
000005b1: PUSH1 0x20
000005b3: PUSH1 0x00
000005b5: KECCAK256
000005b6: SWAP1
000005b7: JUMPDEST
000005b8: DUP2
000005b9: SLOAD
000005ba: DUP2
000005bb: MSTORE
000005bc: SWAP1
000005bd: PUSH1 0x01
000005bf: ADD
000005c0: SWAP1
000005c1: PUSH1 0x20
000005c3: ADD
000005c4: DUP1
000005c5: DUP4
000005c6: GT
000005c7: PUSH2 0x05b7
000005ca: JUMPI
000005cb: DUP3
000005cc: SWAP1
000005cd: SUB
000005ce: PUSH1 0x1f
000005d0: AND
000005d1: DUP3
000005d2: ADD
000005d3: SWAP2
000005d4: JUMPDEST
000005d5: POP
000005d6: POP
000005d7: POP
000005d8: POP
000005d9: POP
000005da: DUP2
000005db: JUMP
000005dc: JUMPDEST
000005dd: POP
000005de: PUSH1 0x00
000005e0: JUMPDEST
000005e1: SWAP4
000005e2: SWAP3
000005e3: POP
000005e4: POP
000005e5: POP
000005e6: JUMP
000005e7: JUMPDEST
000005e8: PUSH1 0x08
000005ea: SLOAD
000005eb: TIMESTAMP
000005ec: LT
000005ed: DUP1
000005ee: ISZERO
000005ef: SWAP1
000005f0: PUSH2 0x05fa
000005f3: JUMPI
000005f4: POP
000005f5: PUSH1 0x09
000005f7: SLOAD
000005f8: TIMESTAMP
000005f9: LT
000005fa: JUMPDEST
000005fb: ISZERO
000005fc: PUSH2 0x0609
000005ff: JUMPI
00000600: PUSH1 0x07
00000602: SLOAD
00000603: SWAP3
00000604: POP
00000605: PUSH2 0x033e
00000608: JUMP
00000609: JUMPDEST
0000060a: PUSH1 0x09
0000060c: SLOAD
0000060d: TIMESTAMP
0000060e: LT
0000060f: DUP1
00000610: ISZERO
00000611: SWAP1
00000612: PUSH2 0x061c
00000615: JUMPI
00000616: POP
00000617: PUSH1 0x0a
00000619: SLOAD
0000061a: TIMESTAMP
0000061b: LT
0000061c: JUMPDEST
0000061d: ISZERO
0000061e: PUSH2 0x0648
00000621: JUMPI
00000622: POP
00000623: POP
00000624: PUSH1 0x09
00000626: SLOAD
00000627: PUSH1 0x07
00000629: SLOAD
0000062a: PUSH3 0x015180
0000062e: TIMESTAMP
0000062f: SWAP3
00000630: SWAP1
00000631: SWAP3
00000632: SUB
00000633: SWAP2
00000634: SWAP1
00000635: SWAP2
00000636: DIV
00000637: PUSH1 0x01
00000639: ADD
0000063a: PUSH1 0x05
0000063c: DUP2
0000063d: DUP2
0000063e: MUL
0000063f: SWAP1
00000640: SWAP3
00000641: SUB
00000642: SWAP3
00000643: POP
00000644: PUSH2 0x033e
00000647: JUMP
00000648: JUMPDEST
00000649: PUSH1 0x0a
0000064b: SLOAD
0000064c: TIMESTAMP
0000064d: LT
0000064e: DUP1
0000064f: ISZERO
00000650: SWAP1
00000651: PUSH2 0x065b
00000654: JUMPI
00000655: POP
00000656: PUSH1 0x0b
00000658: SLOAD
00000659: TIMESTAMP
0000065a: LT
0000065b: JUMPDEST
0000065c: ISZERO
0000065d: PUSH2 0x066e
00000660: JUMPI
00000661: PUSH1 0x07
00000663: SLOAD
00000664: PUSH1 0x02
00000666: SWAP1
00000667: DIV
00000668: SWAP3
00000669: POP
0000066a: PUSH2 0x033e
0000066d: JUMP
0000066e: JUMPDEST
0000066f: PUSH1 0x0b
00000671: SLOAD
00000672: TIMESTAMP
00000673: LT
00000674: DUP1
00000675: ISZERO
00000676: SWAP1
00000677: PUSH2 0x0681
0000067a: JUMPI
0000067b: POP
0000067c: PUSH1 0x0c
0000067e: SLOAD
0000067f: TIMESTAMP
00000680: LT
00000681: JUMPDEST
00000682: ISZERO
00000683: PUSH2 0x06b0
00000686: JUMPI
00000687: POP
00000688: POP
00000689: PUSH1 0x07
0000068b: SLOAD
0000068c: PUSH1 0x0b
0000068e: SLOAD
0000068f: PUSH3 0x015180
00000693: TIMESTAMP
00000694: SWAP2
00000695: SWAP1
00000696: SWAP2
00000697: SUB
00000698: DIV
00000699: PUSH1 0x01
0000069b: ADD
0000069c: PUSH1 0x03
0000069e: DUP2
0000069f: DUP2
000006a0: MUL
000006a1: PUSH1 0x02
000006a3: SWAP1
000006a4: SWAP4
000006a5: DIV
000006a6: SWAP3
000006a7: SWAP1
000006a8: SWAP3
000006a9: SUB
000006aa: SWAP3
000006ab: POP
000006ac: PUSH2 0x033e
000006af: JUMP
000006b0: JUMPDEST
000006b1: PUSH1 0x0c
000006b3: SLOAD
000006b4: TIMESTAMP
000006b5: LT
000006b6: PUSH2 0x033e
000006b9: JUMPI
000006ba: PUSH1 0x00
000006bc: SWAP3
000006bd: POP
000006be: PUSH2 0x033e
000006c1: JUMP
000006c2: JUMPDEST
000006c3: POP
000006c4: PUSH1 0x00
000006c6: PUSH2 0x0186
000006c9: JUMP
000006ca: JUMPDEST
000006cb: PUSH1 0x40
000006cd: MLOAD
000006ce: PUSH1 0x01
000006d0: PUSH1 0xa0
000006d2: PUSH1 0x02
000006d4: EXP
000006d5: SUB
000006d6: DUP4
000006d7: AND
000006d8: SWAP1
000006d9: PUSH1 0x00
000006db: SWAP1
000006dc: DUP4
000006dd: SWAP1
000006de: DUP3
000006df: DUP2
000006e0: DUP2
000006e1: DUP2
000006e2: DUP6
000006e3: DUP9
000006e4: DUP4
000006e5: CALL
000006e6: SWAP4
000006e7: POP
000006e8: POP
000006e9: POP
000006ea: POP
000006eb: ISZERO
000006ec: ISZERO
000006ed: PUSH2 0x0578
000006f0: JUMPI
000006f1: PUSH2 0x0002
000006f4: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x074928ffdd7a27e1d326eeccf495e66417ea322305cd584702843a6c7d0fe0e2
call_targets: 0x0000000000000000000000000000000000000004, 0xeaa5cc34c1e17fd9a6eec88c3b210d9a3700fe03
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x074928ffdd7a27e1d326eeccf495e66417ea322305cd584702843a6c7d0fe0e2",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xeaa5cc34c1e17fd9a6eec88c3b210d9a3700fe03"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6f0b5180",
            "selector": "0x6f0b5180",
            "calldata_variants": [
                "0x6f0b5180",
                "0x6f0b51800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98d5fdca",
            "selector": "0x98d5fdca",
            "calldata_variants": [
                "0x98d5fdca",
                "0x98d5fdca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1253,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1765,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x074928ffdd7a27e1d326eeccf495e66417ea322305cd584702843a6c7d0fe0e2
call_targets: 0x0000000000000000000000000000000000000004, 0xeaa5cc34c1e17fd9a6eec88c3b210d9a3700fe03
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x074928ffdd7a27e1d326eeccf495e66417ea322305cd584702843a6c7d0fe0e2",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xeaa5cc34c1e17fd9a6eec88c3b210d9a3700fe03"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6f0b5180",
            "selector": "0x6f0b5180",
            "calldata_variants": [
                "0x6f0b5180",
                "0x6f0b51800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98d5fdca",
            "selector": "0x98d5fdca",
            "calldata_variants": [
                "0x98d5fdca",
                "0x98d5fdca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1253,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1765,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}