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

Analysis Run

019b3836-484b-709a-b995-66bb28748e7c

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
6431 artifact.fetch complete 1 / 3 3 months ago
6432 tool.cast_disasm complete 1 / 3 3 months ago
50184 analysis.bundle complete 1 / 3 1 week ago
50185 capability.graph complete 1 / 3 1 week ago
50186 detector.run complete 1 / 3 1 week ago
50187 validation.fork complete 1 / 3 1 week ago
113340 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-y2wmy8uo
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c90-a470-71f1-ad40-3edf792315c9
--------
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:34:38.101110+00:00",
        "returncode": 1
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 3024,
        "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
0
Total opcodes
1024
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00cf
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 0x0100
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x12d00c2e
00000025: EQ
00000026: PUSH2 0x015d
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x18160ddd
00000030: EQ
00000031: PUSH2 0x020d
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x1c02708d
0000003b: EQ
0000003c: PUSH2 0x0216
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x313ce567
00000046: EQ
00000047: PUSH2 0x0236
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x3e476053
00000051: EQ
00000052: PUSH2 0x0242
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x4e71e0c8
0000005c: EQ
0000005d: PUSH2 0x02a5
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x6389654e
00000067: EQ
00000068: PUSH2 0x02bf
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x70a08231
00000072: EQ
00000073: PUSH2 0x02e2
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0x8da5cb5b
0000007d: EQ
0000007e: PUSH2 0x02fa
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0x95d89b41
00000088: EQ
00000089: PUSH2 0x030c
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xa4699cad
00000093: EQ
00000094: PUSH2 0x0369
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xace687eb
0000009e: EQ
0000009f: PUSH2 0x037e
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xd0e30db0
000000a9: EQ
000000aa: PUSH2 0x0387
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xf2fde38b
000000b4: EQ
000000b5: PUSH2 0x02bf
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xf3fef3a3
000000bf: EQ
000000c0: PUSH2 0x038f
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xf5c8d71b
000000ca: EQ
000000cb: PUSH2 0x03b5
000000ce: JUMPI
000000cf: JUMPDEST
000000d0: PUSH2 0x03de
000000d3: JUMPDEST
000000d4: PUSH1 0x01
000000d6: PUSH1 0xa0
000000d8: PUSH1 0x02
000000da: EXP
000000db: SUB
000000dc: CALLER
000000dd: AND
000000de: PUSH1 0x00
000000e0: SWAP1
000000e1: DUP2
000000e2: MSTORE
000000e3: PUSH1 0x05
000000e5: PUSH1 0x20
000000e7: MSTORE
000000e8: PUSH1 0x40
000000ea: SWAP1
000000eb: KECCAK256
000000ec: DUP1
000000ed: SLOAD
000000ee: CALLVALUE
000000ef: SWAP1
000000f0: DUP2
000000f1: ADD
000000f2: SWAP1
000000f3: SWAP2
000000f4: SSTORE
000000f5: PUSH1 0x04
000000f7: DUP1
000000f8: SLOAD
000000f9: SWAP1
000000fa: SWAP2
000000fb: ADD
000000fc: SWAP1
000000fd: SSTORE
000000fe: JUMPDEST
000000ff: JUMP
00000100: JUMPDEST
00000101: PUSH2 0x03e0
00000104: PUSH1 0x01
00000106: DUP1
00000107: SLOAD
00000108: PUSH1 0x40
0000010a: DUP1
0000010b: MLOAD
0000010c: PUSH1 0x20
0000010e: PUSH1 0x02
00000110: DUP5
00000111: DUP7
00000112: AND
00000113: ISZERO
00000114: PUSH2 0x0100
00000117: MUL
00000118: PUSH1 0x00
0000011a: NOT
0000011b: ADD
0000011c: SWAP1
0000011d: SWAP5
0000011e: AND
0000011f: SWAP4
00000120: SWAP1
00000121: SWAP4
00000122: DIV
00000123: PUSH1 0x1f
00000125: DUP2
00000126: ADD
00000127: DUP5
00000128: SWAP1
00000129: DIV
0000012a: DUP5
0000012b: MUL
0000012c: DUP3
0000012d: ADD
0000012e: DUP5
0000012f: ADD
00000130: SWAP1
00000131: SWAP3
00000132: MSTORE
00000133: DUP2
00000134: DUP2
00000135: MSTORE
00000136: SWAP3
00000137: SWAP2
00000138: DUP4
00000139: ADD
0000013a: DUP3
0000013b: DUP3
0000013c: DUP1
0000013d: ISZERO
0000013e: PUSH2 0x04e8
00000141: JUMPI
00000142: DUP1
00000143: PUSH1 0x1f
00000145: LT
00000146: PUSH2 0x04bd
00000149: JUMPI
0000014a: PUSH2 0x0100
0000014d: DUP1
0000014e: DUP4
0000014f: SLOAD
00000150: DIV
00000151: MUL
00000152: DUP4
00000153: MSTORE
00000154: SWAP2
00000155: PUSH1 0x20
00000157: ADD
00000158: SWAP2
00000159: PUSH2 0x04e8
0000015c: JUMP
0000015d: JUMPDEST
0000015e: PUSH2 0x03de
00000161: PUSH1 0x04
00000163: CALLDATALOAD
00000164: PUSH1 0x01
00000166: PUSH1 0xa0
00000168: PUSH1 0x02
0000016a: EXP
0000016b: SUB
0000016c: CALLER
0000016d: AND
0000016e: PUSH1 0x00
00000170: SWAP1
00000171: DUP2
00000172: MSTORE
00000173: PUSH1 0x07
00000175: PUSH1 0x20
00000177: MSTORE
00000178: PUSH1 0x40
0000017a: SWAP1
0000017b: KECCAK256
0000017c: SLOAD
0000017d: PUSH1 0x06
0000017f: SLOAD
00000180: SUB
00000181: DUP2
00000182: GT
00000183: ISZERO
00000184: PUSH2 0x0193
00000187: JUMPI
00000188: POP
00000189: PUSH1 0x40
0000018b: PUSH1 0x00
0000018d: KECCAK256
0000018e: SLOAD
0000018f: PUSH1 0x06
00000191: SLOAD
00000192: SUB
00000193: JUMPDEST
00000194: PUSH1 0x40
00000196: MLOAD
00000197: PUSH1 0x01
00000199: PUSH1 0xa0
0000019b: PUSH1 0x02
0000019d: EXP
0000019e: SUB
0000019f: CALLER
000001a0: AND
000001a1: SWAP1
000001a2: PUSH1 0x00
000001a4: SWAP1
000001a5: DUP4
000001a6: SWAP1
000001a7: DUP3
000001a8: DUP2
000001a9: DUP2
000001aa: DUP2
000001ab: DUP6
000001ac: DUP9
000001ad: DUP4
000001ae: CALL
000001af: POP
000001b0: POP
000001b1: POP
000001b2: SWAP1
000001b3: DUP2
000001b4: MSTORE
000001b5: PUSH1 0x05
000001b7: PUSH1 0x20
000001b9: SWAP1
000001ba: DUP2
000001bb: MSTORE
000001bc: PUSH1 0x40
000001be: DUP1
000001bf: DUP4
000001c0: KECCAK256
000001c1: DUP1
000001c2: SLOAD
000001c3: DUP6
000001c4: SWAP1
000001c5: SUB
000001c6: SWAP1
000001c7: SSTORE
000001c8: PUSH1 0x04
000001ca: DUP1
000001cb: SLOAD
000001cc: DUP6
000001cd: SWAP1
000001ce: SUB
000001cf: SWAP1
000001d0: SSTORE
000001d1: PUSH1 0x07
000001d3: SWAP1
000001d4: SWAP2
000001d5: MSTORE
000001d6: SWAP1
000001d7: KECCAK256
000001d8: DUP1
000001d9: SLOAD
000001da: DUP3
000001db: ADD
000001dc: SWAP1
000001dd: SSTORE
000001de: PUSH1 0x08
000001e0: DUP1
000001e1: SLOAD
000001e2: PUSH1 0x01
000001e4: DUP2
000001e5: ADD
000001e6: DUP1
000001e7: DUP4
000001e8: SSTORE
000001e9: DUP3
000001ea: DUP2
000001eb: DUP4
000001ec: DUP1
000001ed: ISZERO
000001ee: DUP3
000001ef: SWAP1
000001f0: GT
000001f1: PUSH2 0x04f4
000001f4: JUMPI
000001f5: DUP2
000001f6: DUP4
000001f7: PUSH1 0x00
000001f9: MSTORE
000001fa: PUSH1 0x20
000001fc: PUSH1 0x00
000001fe: KECCAK256
000001ff: SWAP2
00000200: DUP3
00000201: ADD
00000202: SWAP2
00000203: ADD
00000204: PUSH2 0x04f4
00000207: SWAP2
00000208: SWAP1
00000209: PUSH2 0x055a
0000020c: JUMP
0000020d: JUMPDEST
0000020e: PUSH2 0x044e
00000211: PUSH1 0x04
00000213: SLOAD
00000214: DUP2
00000215: JUMP
00000216: JUMPDEST
00000217: PUSH2 0x03de
0000021a: PUSH1 0x00
0000021c: SLOAD
0000021d: PUSH1 0x01
0000021f: PUSH1 0xa0
00000221: PUSH1 0x02
00000223: EXP
00000224: SUB
00000225: SWAP1
00000226: DUP2
00000227: AND
00000228: CALLER
00000229: SWAP2
0000022a: SWAP1
0000022b: SWAP2
0000022c: AND
0000022d: EQ
0000022e: PUSH2 0x00fe
00000231: JUMPI
00000232: PUSH2 0x0002
00000235: JUMP
00000236: JUMPDEST
00000237: PUSH2 0x0460
0000023a: PUSH1 0x03
0000023c: SLOAD
0000023d: PUSH1 0xff
0000023f: AND
00000240: DUP2
00000241: JUMP
00000242: JUMPDEST
00000243: PUSH2 0x03de
00000246: PUSH1 0x04
00000248: CALLDATALOAD
00000249: PUSH1 0x24
0000024b: CALLDATALOAD
0000024c: PUSH1 0x01
0000024e: PUSH1 0xa0
00000250: PUSH1 0x02
00000252: EXP
00000253: SUB
00000254: CALLER
00000255: AND
00000256: PUSH1 0x00
00000258: SWAP1
00000259: DUP2
0000025a: MSTORE
0000025b: PUSH1 0x05
0000025d: PUSH1 0x20
0000025f: MSTORE
00000260: PUSH1 0x40
00000262: SWAP1
00000263: KECCAK256
00000264: SLOAD
00000265: DUP2
00000266: SWAP1
00000267: LT
00000268: ISZERO
00000269: PUSH2 0x0274
0000026c: JUMPI
0000026d: POP
0000026e: PUSH1 0x40
00000270: PUSH1 0x00
00000272: KECCAK256
00000273: SLOAD
00000274: JUMPDEST
00000275: PUSH1 0x01
00000277: PUSH1 0xa0
00000279: PUSH1 0x02
0000027b: EXP
0000027c: SUB
0000027d: CALLER
0000027e: DUP2
0000027f: AND
00000280: PUSH1 0x00
00000282: SWAP1
00000283: DUP2
00000284: MSTORE
00000285: PUSH1 0x05
00000287: PUSH1 0x20
00000289: MSTORE
0000028a: PUSH1 0x40
0000028c: DUP1
0000028d: DUP3
0000028e: KECCAK256
0000028f: DUP1
00000290: SLOAD
00000291: DUP6
00000292: SWAP1
00000293: SUB
00000294: SWAP1
00000295: SSTORE
00000296: SWAP2
00000297: DUP5
00000298: AND
00000299: DUP2
0000029a: MSTORE
0000029b: KECCAK256
0000029c: DUP1
0000029d: SLOAD
0000029e: DUP3
0000029f: ADD
000002a0: SWAP1
000002a1: SSTORE
000002a2: POP
000002a3: POP
000002a4: JUMP
000002a5: JUMPDEST
000002a6: PUSH2 0x03de
000002a9: PUSH1 0x00
000002ab: DUP1
000002ac: SLOAD
000002ad: PUSH1 0x01
000002af: PUSH1 0xa0
000002b1: PUSH1 0x02
000002b3: EXP
000002b4: SUB
000002b5: AND
000002b6: EQ
000002b7: PUSH2 0x0494
000002ba: JUMPI
000002bb: PUSH2 0x0002
000002be: JUMP
000002bf: JUMPDEST
000002c0: PUSH2 0x03de
000002c3: PUSH1 0x04
000002c5: CALLDATALOAD
000002c6: PUSH1 0x00
000002c8: SLOAD
000002c9: PUSH1 0x01
000002cb: PUSH1 0xa0
000002cd: PUSH1 0x02
000002cf: EXP
000002d0: SUB
000002d1: SWAP1
000002d2: DUP2
000002d3: AND
000002d4: CALLER
000002d5: SWAP2
000002d6: SWAP1
000002d7: SWAP2
000002d8: AND
000002d9: EQ
000002da: PUSH2 0x04ba
000002dd: JUMPI
000002de: PUSH2 0x0002
000002e1: JUMP
000002e2: JUMPDEST
000002e3: PUSH2 0x044e
000002e6: PUSH1 0x04
000002e8: CALLDATALOAD
000002e9: PUSH1 0x05
000002eb: PUSH1 0x20
000002ed: MSTORE
000002ee: PUSH1 0x00
000002f0: SWAP1
000002f1: DUP2
000002f2: MSTORE
000002f3: PUSH1 0x40
000002f5: SWAP1
000002f6: KECCAK256
000002f7: SLOAD
000002f8: DUP2
000002f9: JUMP
000002fa: JUMPDEST
000002fb: PUSH2 0x0477
000002fe: PUSH1 0x00
00000300: SLOAD
00000301: PUSH1 0x01
00000303: PUSH1 0xa0
00000305: PUSH1 0x02
00000307: EXP
00000308: SUB
00000309: AND
0000030a: DUP2
0000030b: JUMP
0000030c: JUMPDEST
0000030d: PUSH2 0x03e0
00000310: PUSH1 0x02
00000312: DUP1
00000313: SLOAD
00000314: PUSH1 0x40
00000316: DUP1
00000317: MLOAD
00000318: PUSH1 0x20
0000031a: PUSH1 0x1f
0000031c: PUSH1 0x01
0000031e: DUP6
0000031f: AND
00000320: ISZERO
00000321: PUSH2 0x0100
00000324: MUL
00000325: PUSH1 0x00
00000327: NOT
00000328: ADD
00000329: SWAP1
0000032a: SWAP5
0000032b: AND
0000032c: DUP6
0000032d: SWAP1
0000032e: DIV
0000032f: SWAP4
00000330: DUP5
00000331: ADD
00000332: DUP2
00000333: SWAP1
00000334: DIV
00000335: DUP2
00000336: MUL
00000337: DUP3
00000338: ADD
00000339: DUP2
0000033a: ADD
0000033b: SWAP1
0000033c: SWAP3
0000033d: MSTORE
0000033e: DUP3
0000033f: DUP2
00000340: MSTORE
00000341: SWAP3
00000342: SWAP2
00000343: SWAP1
00000344: DUP4
00000345: ADD
00000346: DUP3
00000347: DUP3
00000348: DUP1
00000349: ISZERO
0000034a: PUSH2 0x04e8
0000034d: JUMPI
0000034e: DUP1
0000034f: PUSH1 0x1f
00000351: LT
00000352: PUSH2 0x04bd
00000355: JUMPI
00000356: PUSH2 0x0100
00000359: DUP1
0000035a: DUP4
0000035b: SLOAD
0000035c: DIV
0000035d: MUL
0000035e: DUP4
0000035f: MSTORE
00000360: SWAP2
00000361: PUSH1 0x20
00000363: ADD
00000364: SWAP2
00000365: PUSH2 0x04e8
00000368: JUMP
00000369: JUMPDEST
0000036a: PUSH2 0x03de
0000036d: PUSH1 0x09
0000036f: SLOAD
00000370: PUSH1 0x00
00000372: SWAP1
00000373: TIMESTAMP
00000374: LT
00000375: ISZERO
00000376: PUSH2 0x0572
00000379: JUMPI
0000037a: PUSH2 0x0002
0000037d: JUMP
0000037e: JUMPDEST
0000037f: PUSH2 0x044e
00000382: PUSH1 0x06
00000384: SLOAD
00000385: DUP2
00000386: JUMP
00000387: JUMPDEST
00000388: PUSH2 0x03de
0000038b: PUSH2 0x00d3
0000038e: JUMP
0000038f: JUMPDEST
00000390: PUSH2 0x03de
00000393: PUSH1 0x04
00000395: CALLDATALOAD
00000396: PUSH1 0x24
00000398: CALLDATALOAD
00000399: PUSH1 0x00
0000039b: SLOAD
0000039c: PUSH1 0x01
0000039e: PUSH1 0xa0
000003a0: PUSH1 0x02
000003a2: EXP
000003a3: SUB
000003a4: SWAP1
000003a5: DUP2
000003a6: AND
000003a7: CALLER
000003a8: SWAP2
000003a9: SWAP1
000003aa: SWAP2
000003ab: AND
000003ac: EQ
000003ad: PUSH2 0x04f0
000003b0: JUMPI
000003b1: PUSH2 0x0002
000003b4: JUMP
000003b5: JUMPDEST
000003b6: PUSH2 0x03de
000003b9: PUSH1 0x04
000003bb: CALLDATALOAD
000003bc: PUSH1 0x24
000003be: CALLDATALOAD
000003bf: PUSH1 0x44
000003c1: CALLDATALOAD
000003c2: PUSH1 0x00
000003c4: SLOAD
000003c5: PUSH1 0x01
000003c7: PUSH1 0xa0
000003c9: PUSH1 0x02
000003cb: EXP
000003cc: SUB
000003cd: SWAP1
000003ce: DUP2
000003cf: AND
000003d0: CALLER
000003d1: SWAP2
000003d2: SWAP1
000003d3: SWAP2
000003d4: AND
000003d5: EQ
000003d6: PUSH2 0x04b5
000003d9: JUMPI
000003da: PUSH2 0x0002
000003dd: JUMP
000003de: JUMPDEST
000003df: STOP
000003e0: JUMPDEST
000003e1: PUSH1 0x40
000003e3: MLOAD
000003e4: DUP1
000003e5: DUP1
000003e6: PUSH1 0x20
000003e8: ADD
000003e9: DUP3
000003ea: DUP2
000003eb: SUB
000003ec: DUP3
000003ed: MSTORE
000003ee: DUP4
000003ef: DUP2
000003f0: DUP2
000003f1: MLOAD
000003f2: DUP2
000003f3: MSTORE
000003f4: PUSH1 0x20
000003f6: ADD
000003f7: SWAP2
000003f8: POP
000003f9: DUP1
000003fa: MLOAD
000003fb: SWAP1
000003fc: PUSH1 0x20
000003fe: ADD
000003ff: SWAP1
00000400: DUP1
00000401: DUP4
00000402: DUP4
00000403: DUP3
00000404: SWAP1
00000405: PUSH1 0x00
00000407: PUSH1 0x04
00000409: PUSH1 0x20
0000040b: DUP5
0000040c: PUSH1 0x1f
0000040e: ADD
0000040f: DIV
00000410: PUSH1 0x0f
00000412: MUL
00000413: PUSH1 0x03
00000415: ADD
00000416: CALL
00000417: POP
00000418: SWAP1
00000419: POP
0000041a: SWAP1
0000041b: DUP2
0000041c: ADD
0000041d: SWAP1
0000041e: PUSH1 0x1f
00000420: AND
00000421: DUP1
00000422: ISZERO
00000423: PUSH2 0x0440
00000426: JUMPI
00000427: DUP1
00000428: DUP3
00000429: SUB
0000042a: DUP1
0000042b: MLOAD
0000042c: PUSH1 0x01
0000042e: DUP4
0000042f: PUSH1 0x20
00000431: SUB
00000432: PUSH2 0x0100
00000435: EXP
00000436: SUB
00000437: NOT
00000438: AND
00000439: DUP2
0000043a: MSTORE
0000043b: PUSH1 0x20
0000043d: ADD
0000043e: SWAP2
0000043f: POP
00000440: JUMPDEST
00000441: POP
00000442: SWAP3
00000443: POP
00000444: POP
00000445: POP
00000446: PUSH1 0x40
00000448: MLOAD
00000449: DUP1
0000044a: SWAP2
0000044b: SUB
0000044c: SWAP1
0000044d: RETURN
0000044e: JUMPDEST
0000044f: PUSH1 0x40
00000451: DUP1
00000452: MLOAD
00000453: SWAP2
00000454: DUP3
00000455: MSTORE
00000456: MLOAD
00000457: SWAP1
00000458: DUP2
00000459: SWAP1
0000045a: SUB
0000045b: PUSH1 0x20
0000045d: ADD
0000045e: SWAP1
0000045f: RETURN
00000460: JUMPDEST
00000461: PUSH1 0x40
00000463: DUP1
00000464: MLOAD
00000465: PUSH1 0xff
00000467: SWAP3
00000468: SWAP1
00000469: SWAP3
0000046a: AND
0000046b: DUP3
0000046c: MSTORE
0000046d: MLOAD
0000046e: SWAP1
0000046f: DUP2
00000470: SWAP1
00000471: SUB
00000472: PUSH1 0x20
00000474: ADD
00000475: SWAP1
00000476: RETURN
00000477: JUMPDEST
00000478: PUSH1 0x40
0000047a: DUP1
0000047b: MLOAD
0000047c: PUSH1 0x01
0000047e: PUSH1 0xa0
00000480: PUSH1 0x02
00000482: EXP
00000483: SUB
00000484: SWAP3
00000485: SWAP1
00000486: SWAP3
00000487: AND
00000488: DUP3
00000489: MSTORE
0000048a: MLOAD
0000048b: SWAP1
0000048c: DUP2
0000048d: SWAP1
0000048e: SUB
0000048f: PUSH1 0x20
00000491: ADD
00000492: SWAP1
00000493: RETURN
00000494: JUMPDEST
00000495: PUSH1 0x00
00000497: DUP1
00000498: SLOAD
00000499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ae: NOT
000004af: AND
000004b0: CALLER
000004b1: OR
000004b2: SWAP1
000004b3: SSTORE
000004b4: JUMP
000004b5: JUMPDEST
000004b6: POP
000004b7: POP
000004b8: POP
000004b9: JUMP
000004ba: JUMPDEST
000004bb: POP
000004bc: JUMP
000004bd: JUMPDEST
000004be: DUP3
000004bf: ADD
000004c0: SWAP2
000004c1: SWAP1
000004c2: PUSH1 0x00
000004c4: MSTORE
000004c5: PUSH1 0x20
000004c7: PUSH1 0x00
000004c9: KECCAK256
000004ca: SWAP1
000004cb: JUMPDEST
000004cc: DUP2
000004cd: SLOAD
000004ce: DUP2
000004cf: MSTORE
000004d0: SWAP1
000004d1: PUSH1 0x01
000004d3: ADD
000004d4: SWAP1
000004d5: PUSH1 0x20
000004d7: ADD
000004d8: DUP1
000004d9: DUP4
000004da: GT
000004db: PUSH2 0x04cb
000004de: JUMPI
000004df: DUP3
000004e0: SWAP1
000004e1: SUB
000004e2: PUSH1 0x1f
000004e4: AND
000004e5: DUP3
000004e6: ADD
000004e7: SWAP2
000004e8: JUMPDEST
000004e9: POP
000004ea: POP
000004eb: POP
000004ec: POP
000004ed: POP
000004ee: DUP2
000004ef: JUMP
000004f0: JUMPDEST
000004f1: POP
000004f2: POP
000004f3: JUMP
000004f4: JUMPDEST
000004f5: POP
000004f6: POP
000004f7: POP
000004f8: PUSH1 0x00
000004fa: SWAP3
000004fb: DUP4
000004fc: MSTORE
000004fd: POP
000004fe: PUSH1 0x20
00000500: SWAP1
00000501: SWAP2
00000502: KECCAK256
00000503: ADD
00000504: DUP1
00000505: SLOAD
00000506: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000051b: NOT
0000051c: AND
0000051d: CALLER
0000051e: OR
0000051f: SWAP1
00000520: SSTORE
00000521: POP
00000522: JUMP
00000523: JUMPDEST
00000524: PUSH1 0x08
00000526: DUP1
00000527: SLOAD
00000528: PUSH1 0x00
0000052a: DUP1
0000052b: DUP4
0000052c: SSTORE
0000052d: SWAP2
0000052e: SWAP1
0000052f: SWAP2
00000530: MSTORE
00000531: PUSH2 0x05d8
00000534: SWAP1
00000535: PUSH32 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3
00000556: SWAP1
00000557: DUP2
00000558: ADD
00000559: SWAP1
0000055a: JUMPDEST
0000055b: DUP1
0000055c: DUP3
0000055d: GT
0000055e: ISZERO
0000055f: PUSH2 0x056e
00000562: JUMPI
00000563: PUSH1 0x00
00000565: DUP2
00000566: SSTORE
00000567: PUSH1 0x01
00000569: ADD
0000056a: PUSH2 0x055a
0000056d: JUMP
0000056e: JUMPDEST
0000056f: POP
00000570: SWAP1
00000571: JUMP
00000572: JUMPDEST
00000573: POP
00000574: PUSH1 0x00
00000576: JUMPDEST
00000577: PUSH1 0x08
00000579: SLOAD
0000057a: DUP2
0000057b: LT
0000057c: ISZERO
0000057d: PUSH2 0x0523
00000580: JUMPI
00000581: PUSH1 0x00
00000583: PUSH1 0x07
00000585: PUSH1 0x00
00000587: POP
00000588: PUSH1 0x00
0000058a: PUSH1 0x08
0000058c: PUSH1 0x00
0000058e: POP
0000058f: DUP5
00000590: DUP2
00000591: SLOAD
00000592: DUP2
00000593: LT
00000594: ISZERO
00000595: PUSH2 0x0002
00000598: JUMPI
00000599: PUSH32 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3
000005ba: ADD
000005bb: SLOAD
000005bc: PUSH1 0x01
000005be: PUSH1 0xa0
000005c0: PUSH1 0x02
000005c2: EXP
000005c3: SUB
000005c4: AND
000005c5: SWAP1
000005c6: SWAP2
000005c7: MSTORE
000005c8: POP
000005c9: PUSH1 0x20
000005cb: MSTORE
000005cc: PUSH1 0x40
000005ce: DUP2
000005cf: KECCAK256
000005d0: SSTORE
000005d1: PUSH1 0x01
000005d3: ADD
000005d4: PUSH2 0x0576
000005d7: JUMP
000005d8: JUMPDEST
000005d9: POP
000005da: PUSH1 0x09
000005dc: DUP1
000005dd: SLOAD
000005de: PUSH3 0x015180
000005e2: ADD
000005e3: SWAP1
000005e4: SSTORE
000005e5: POP
000005e6: 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: 0x4bf043bc2a2285431c6692dc85dd13c2339771e6b3b4f47d13117772752044fd
call_targets: 0x0000000000000000000000000000000000000004, 0x9448b35b4c9eea695dedff285e0cd8bc6c65e2b1
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x4bf043bc2a2285431c6692dc85dd13c2339771e6b3b4f47d13117772752044fd",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x9448b35b4c9eea695dedff285e0cd8bc6c65e2b1"
    ],
    "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": "0x12d00c2e",
            "selector": "0x12d00c2e",
            "calldata_variants": [
                "0x12d00c2e",
                "0x12d00c2e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1c02708d",
            "selector": "0x1c02708d",
            "calldata_variants": [
                "0x1c02708d",
                "0x1c02708d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3e476053",
            "selector": "0x3e476053",
            "calldata_variants": [
                "0x3e476053",
                "0x3e4760530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e71e0c8",
            "selector": "0x4e71e0c8",
            "calldata_variants": [
                "0x4e71e0c8",
                "0x4e71e0c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6389654e",
            "selector": "0x6389654e",
            "calldata_variants": [
                "0x6389654e",
                "0x6389654e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 430,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1046,
            "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: 0x4bf043bc2a2285431c6692dc85dd13c2339771e6b3b4f47d13117772752044fd
call_targets: 0x0000000000000000000000000000000000000004, 0x9448b35b4c9eea695dedff285e0cd8bc6c65e2b1
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x4bf043bc2a2285431c6692dc85dd13c2339771e6b3b4f47d13117772752044fd",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x9448b35b4c9eea695dedff285e0cd8bc6c65e2b1"
    ],
    "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": "0x12d00c2e",
            "selector": "0x12d00c2e",
            "calldata_variants": [
                "0x12d00c2e",
                "0x12d00c2e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1c02708d",
            "selector": "0x1c02708d",
            "calldata_variants": [
                "0x1c02708d",
                "0x1c02708d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3e476053",
            "selector": "0x3e476053",
            "calldata_variants": [
                "0x3e476053",
                "0x3e4760530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e71e0c8",
            "selector": "0x4e71e0c8",
            "calldata_variants": [
                "0x4e71e0c8",
                "0x4e71e0c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6389654e",
            "selector": "0x6389654e",
            "calldata_variants": [
                "0x6389654e",
                "0x6389654e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 430,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1046,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}