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

Analysis Run

019b3836-4378-7200-878a-76fdf3fdd9c0

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 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
5715 artifact.fetch complete 1 / 3 3 months ago
5716 tool.cast_disasm complete 1 / 3 3 months ago
97942 analysis.bundle complete 1 / 3 1 week ago
97943 capability.graph complete 1 / 3 1 week ago
97944 detector.run complete 1 / 3 1 week ago
97945 validation.fork complete 1 / 3 1 week ago
113835 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-m98cd7h4
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5ca0-263d-7cd2-b1b4-41a4936ca983
--------
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:51:35.417294+00:00",
        "returncode": 1
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 2656,
        "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)
4
EXT*/BALANCE
1
Total opcodes
763
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x006c
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x01cb3b20
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x0082
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x29dcb0cf
00000025: EQ
00000026: PUSH2 0x0144
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x38af3eed
00000030: EQ
00000031: PUSH2 0x014d
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x6e66f6e9
0000003b: EQ
0000003c: PUSH2 0x015f
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x7a3a0e84
00000046: EQ
00000047: PUSH2 0x0171
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x7b3e5e7b
00000051: EQ
00000052: PUSH2 0x017a
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0xa035b1fe
0000005c: EQ
0000005d: PUSH2 0x0183
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0xdc0d3dff
00000067: EQ
00000068: PUSH2 0x018c
0000006b: JUMPI
0000006c: JUMPDEST
0000006d: PUSH2 0x0200
00000070: PUSH1 0x07
00000072: SLOAD
00000073: PUSH1 0x00
00000075: SWAP1
00000076: PUSH1 0xff
00000078: AND
00000079: ISZERO
0000007a: PUSH2 0x0323
0000007d: JUMPI
0000007e: PUSH2 0x0002
00000081: JUMP
00000082: JUMPDEST
00000083: PUSH2 0x0200
00000086: PUSH1 0x03
00000088: SLOAD
00000089: PUSH1 0x00
0000008b: SWAP1
0000008c: TIMESTAMP
0000008d: LT
0000008e: PUSH2 0x0320
00000091: JUMPI
00000092: PUSH1 0x02
00000094: SLOAD
00000095: PUSH1 0x01
00000097: SLOAD
00000098: SWAP1
00000099: LT
0000009a: PUSH2 0x03cb
0000009d: JUMPI
0000009e: PUSH1 0x02
000000a0: SLOAD
000000a1: DUP2
000000a2: SLOAD
000000a3: PUSH1 0x01
000000a5: PUSH1 0xa0
000000a7: PUSH1 0x02
000000a9: EXP
000000aa: SUB
000000ab: AND
000000ac: SWAP1
000000ad: DUP3
000000ae: SWAP1
000000af: PUSH1 0x60
000000b1: DUP3
000000b2: DUP2
000000b3: DUP2
000000b4: DUP2
000000b5: DUP6
000000b6: DUP9
000000b7: DUP4
000000b8: CALL
000000b9: POP
000000ba: SWAP2
000000bb: SLOAD
000000bc: PUSH1 0x02
000000be: SLOAD
000000bf: PUSH1 0x40
000000c1: DUP1
000000c2: MLOAD
000000c3: PUSH1 0x01
000000c5: PUSH1 0xa0
000000c7: PUSH1 0x02
000000c9: EXP
000000ca: SUB
000000cb: SWAP4
000000cc: SWAP1
000000cd: SWAP4
000000ce: AND
000000cf: DUP4
000000d0: MSTORE
000000d1: PUSH1 0x20
000000d3: DUP4
000000d4: ADD
000000d5: SWAP2
000000d6: SWAP1
000000d7: SWAP2
000000d8: MSTORE
000000d9: DUP2
000000da: DUP2
000000db: ADD
000000dc: DUP7
000000dd: SWAP1
000000de: MSTORE
000000df: MLOAD
000000e0: PUSH32 0xe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6
00000101: SWAP5
00000102: POP
00000103: SWAP1
00000104: DUP2
00000105: SWAP1
00000106: SUB
00000107: SWAP1
00000108: SWAP3
00000109: ADD
0000010a: SWAP2
0000010b: SWAP1
0000010c: POP
0000010d: LOG1
0000010e: JUMPDEST
0000010f: PUSH1 0x40
00000111: MLOAD
00000112: PUSH1 0x00
00000114: DUP1
00000115: SLOAD
00000116: PUSH1 0x01
00000118: PUSH1 0xa0
0000011a: PUSH1 0x02
0000011c: EXP
0000011d: SUB
0000011e: SWAP1
0000011f: DUP2
00000120: AND
00000121: SWAP3
00000122: ADDRESS
00000123: SWAP1
00000124: SWAP2
00000125: AND
00000126: BALANCE
00000127: SWAP1
00000128: DUP3
00000129: DUP2
0000012a: DUP2
0000012b: DUP2
0000012c: DUP6
0000012d: DUP9
0000012e: DUP4
0000012f: CALL
00000130: POP
00000131: POP
00000132: PUSH1 0x07
00000134: DUP1
00000135: SLOAD
00000136: PUSH1 0xff
00000138: NOT
00000139: AND
0000013a: PUSH1 0x01
0000013c: OR
0000013d: SWAP1
0000013e: SSTORE
0000013f: POP
00000140: POP
00000141: POP
00000142: POP
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH2 0x03a1
00000148: PUSH1 0x03
0000014a: SLOAD
0000014b: DUP2
0000014c: JUMP
0000014d: JUMPDEST
0000014e: PUSH2 0x03ab
00000151: PUSH1 0x00
00000153: SLOAD
00000154: PUSH1 0x01
00000156: PUSH1 0xa0
00000158: PUSH1 0x02
0000015a: EXP
0000015b: SUB
0000015c: AND
0000015d: DUP2
0000015e: JUMP
0000015f: JUMPDEST
00000160: PUSH2 0x03ab
00000163: PUSH1 0x05
00000165: SLOAD
00000166: PUSH1 0x01
00000168: PUSH1 0xa0
0000016a: PUSH1 0x02
0000016c: EXP
0000016d: SUB
0000016e: AND
0000016f: DUP2
00000170: JUMP
00000171: JUMPDEST
00000172: PUSH2 0x03a1
00000175: PUSH1 0x01
00000177: SLOAD
00000178: DUP2
00000179: JUMP
0000017a: JUMPDEST
0000017b: PUSH2 0x03a1
0000017e: PUSH1 0x02
00000180: SLOAD
00000181: DUP2
00000182: JUMP
00000183: JUMPDEST
00000184: PUSH2 0x03a1
00000187: PUSH1 0x04
00000189: SLOAD
0000018a: DUP2
0000018b: JUMP
0000018c: JUMPDEST
0000018d: PUSH2 0x03be
00000190: PUSH1 0x04
00000192: CALLDATALOAD
00000193: PUSH1 0x06
00000195: DUP1
00000196: SLOAD
00000197: DUP3
00000198: SWAP1
00000199: DUP2
0000019a: LT
0000019b: ISZERO
0000019c: PUSH2 0x0002
0000019f: JUMPI
000001a0: POP
000001a1: PUSH1 0x00
000001a3: MSTORE
000001a4: PUSH1 0x02
000001a6: MUL
000001a7: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
000001c8: DUP2
000001c9: ADD
000001ca: SLOAD
000001cb: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40
000001ec: SWAP2
000001ed: SWAP1
000001ee: SWAP2
000001ef: ADD
000001f0: SLOAD
000001f1: PUSH1 0x01
000001f3: PUSH1 0xa0
000001f5: PUSH1 0x02
000001f7: EXP
000001f8: SUB
000001f9: SWAP2
000001fa: SWAP1
000001fb: SWAP2
000001fc: AND
000001fd: SWAP1
000001fe: DUP3
000001ff: JUMP
00000200: JUMPDEST
00000201: STOP
00000202: JUMPDEST
00000203: POP
00000204: POP
00000205: POP
00000206: DUP2
00000207: SLOAD
00000208: DUP2
00000209: LT
0000020a: ISZERO
0000020b: PUSH2 0x0002
0000020e: JUMPI
0000020f: SWAP1
00000210: PUSH1 0x00
00000212: MSTORE
00000213: PUSH1 0x20
00000215: PUSH1 0x00
00000217: KECCAK256
00000218: SWAP1
00000219: PUSH1 0x02
0000021b: MUL
0000021c: ADD
0000021d: PUSH1 0x00
0000021f: POP
00000220: PUSH1 0x00
00000222: DUP3
00000223: ADD
00000224: MLOAD
00000225: DUP2
00000226: PUSH1 0x00
00000228: ADD
00000229: PUSH1 0x00
0000022b: PUSH2 0x0100
0000022e: EXP
0000022f: DUP2
00000230: SLOAD
00000231: DUP2
00000232: PUSH1 0x01
00000234: PUSH1 0xa0
00000236: PUSH1 0x02
00000238: EXP
00000239: SUB
0000023a: MUL
0000023b: NOT
0000023c: AND
0000023d: SWAP1
0000023e: DUP4
0000023f: MUL
00000240: OR
00000241: SWAP1
00000242: SSTORE
00000243: POP
00000244: PUSH1 0x20
00000246: DUP3
00000247: ADD
00000248: MLOAD
00000249: DUP2
0000024a: PUSH1 0x01
0000024c: ADD
0000024d: PUSH1 0x00
0000024f: POP
00000250: SSTORE
00000251: SWAP1
00000252: POP
00000253: POP
00000254: DUP1
00000255: PUSH1 0x02
00000257: PUSH1 0x00
00000259: DUP3
0000025a: DUP3
0000025b: DUP3
0000025c: POP
0000025d: SLOAD
0000025e: ADD
0000025f: SWAP3
00000260: POP
00000261: POP
00000262: DUP2
00000263: SWAP1
00000264: SSTORE
00000265: POP
00000266: PUSH1 0x05
00000268: PUSH1 0x00
0000026a: SWAP1
0000026b: SLOAD
0000026c: SWAP1
0000026d: PUSH2 0x0100
00000270: EXP
00000271: SWAP1
00000272: DIV
00000273: PUSH1 0x01
00000275: PUSH1 0xa0
00000277: PUSH1 0x02
00000279: EXP
0000027a: SUB
0000027b: AND
0000027c: PUSH1 0x01
0000027e: PUSH1 0xa0
00000280: PUSH1 0x02
00000282: EXP
00000283: SUB
00000284: AND
00000285: PUSH4 0xa9059cbb
0000028a: CALLER
0000028b: PUSH1 0x04
0000028d: PUSH1 0x00
0000028f: POP
00000290: SLOAD
00000291: DUP5
00000292: DIV
00000293: PUSH1 0x40
00000295: MLOAD
00000296: DUP4
00000297: PUSH1 0xe0
00000299: PUSH1 0x02
0000029b: EXP
0000029c: MUL
0000029d: DUP2
0000029e: MSTORE
0000029f: PUSH1 0x04
000002a1: ADD
000002a2: DUP1
000002a3: DUP4
000002a4: PUSH1 0x01
000002a6: PUSH1 0xa0
000002a8: PUSH1 0x02
000002aa: EXP
000002ab: SUB
000002ac: AND
000002ad: DUP2
000002ae: MSTORE
000002af: PUSH1 0x20
000002b1: ADD
000002b2: DUP3
000002b3: DUP2
000002b4: MSTORE
000002b5: PUSH1 0x20
000002b7: ADD
000002b8: SWAP3
000002b9: POP
000002ba: POP
000002bb: POP
000002bc: PUSH1 0x00
000002be: PUSH1 0x40
000002c0: MLOAD
000002c1: DUP1
000002c2: DUP4
000002c3: SUB
000002c4: DUP2
000002c5: PUSH1 0x00
000002c7: DUP8
000002c8: PUSH2 0x61da
000002cb: GAS
000002cc: SUB
000002cd: CALL
000002ce: ISZERO
000002cf: PUSH2 0x0002
000002d2: JUMPI
000002d3: POP
000002d4: POP
000002d5: PUSH1 0x40
000002d7: DUP1
000002d8: MLOAD
000002d9: PUSH1 0x01
000002db: PUSH1 0xa0
000002dd: PUSH1 0x02
000002df: EXP
000002e0: SUB
000002e1: CALLER
000002e2: AND
000002e3: DUP2
000002e4: MSTORE
000002e5: PUSH1 0x20
000002e7: DUP2
000002e8: ADD
000002e9: DUP5
000002ea: SWAP1
000002eb: MSTORE
000002ec: PUSH1 0x01
000002ee: DUP2
000002ef: DUP4
000002f0: ADD
000002f1: MSTORE
000002f2: SWAP1
000002f3: MLOAD
000002f4: PUSH32 0xe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6
00000315: SWAP3
00000316: POP
00000317: SWAP1
00000318: DUP2
00000319: SWAP1
0000031a: SUB
0000031b: PUSH1 0x60
0000031d: ADD
0000031e: SWAP1
0000031f: LOG1
00000320: JUMPDEST
00000321: POP
00000322: JUMP
00000323: JUMPDEST
00000324: POP
00000325: PUSH1 0xa0
00000327: PUSH1 0x40
00000329: MSTORE
0000032a: CALLER
0000032b: PUSH1 0x60
0000032d: SWAP1
0000032e: DUP2
0000032f: MSTORE
00000330: CALLVALUE
00000331: PUSH1 0x80
00000333: DUP2
00000334: SWAP1
00000335: MSTORE
00000336: PUSH1 0x06
00000338: DUP1
00000339: SLOAD
0000033a: PUSH1 0x01
0000033c: DUP2
0000033d: ADD
0000033e: DUP1
0000033f: DUP4
00000340: SSTORE
00000341: SWAP3
00000342: SWAP4
00000343: SWAP3
00000344: DUP3
00000345: SWAP1
00000346: DUP3
00000347: DUP1
00000348: ISZERO
00000349: DUP3
0000034a: SWAP1
0000034b: GT
0000034c: PUSH2 0x0202
0000034f: JUMPI
00000350: PUSH1 0x02
00000352: MUL
00000353: DUP2
00000354: PUSH1 0x02
00000356: MUL
00000357: DUP4
00000358: PUSH1 0x00
0000035a: MSTORE
0000035b: PUSH1 0x20
0000035d: PUSH1 0x00
0000035f: KECCAK256
00000360: SWAP2
00000361: DUP3
00000362: ADD
00000363: SWAP2
00000364: ADD
00000365: PUSH2 0x0202
00000368: SWAP2
00000369: SWAP1
0000036a: JUMPDEST
0000036b: DUP1
0000036c: DUP3
0000036d: GT
0000036e: ISZERO
0000036f: PUSH2 0x039d
00000372: JUMPI
00000373: DUP1
00000374: SLOAD
00000375: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000038a: NOT
0000038b: AND
0000038c: DUP2
0000038d: SSTORE
0000038e: PUSH1 0x00
00000390: PUSH1 0x01
00000392: SWAP2
00000393: SWAP1
00000394: SWAP2
00000395: ADD
00000396: SWAP1
00000397: DUP2
00000398: SSTORE
00000399: PUSH2 0x036a
0000039c: JUMP
0000039d: JUMPDEST
0000039e: POP
0000039f: SWAP1
000003a0: JUMP
000003a1: JUMPDEST
000003a2: PUSH1 0x60
000003a4: SWAP1
000003a5: DUP2
000003a6: MSTORE
000003a7: PUSH1 0x20
000003a9: SWAP1
000003aa: RETURN
000003ab: JUMPDEST
000003ac: PUSH1 0x01
000003ae: PUSH1 0xa0
000003b0: PUSH1 0x02
000003b2: EXP
000003b3: SUB
000003b4: AND
000003b5: PUSH1 0x60
000003b7: SWAP1
000003b8: DUP2
000003b9: MSTORE
000003ba: PUSH1 0x20
000003bc: SWAP1
000003bd: RETURN
000003be: JUMPDEST
000003bf: PUSH1 0x60
000003c1: SWAP2
000003c2: DUP3
000003c3: MSTORE
000003c4: PUSH1 0x80
000003c6: MSTORE
000003c7: PUSH1 0x40
000003c9: SWAP1
000003ca: RETURN
000003cb: JUMPDEST
000003cc: JUMPDEST
000003cd: PUSH1 0x06
000003cf: SLOAD
000003d0: DUP2
000003d1: LT
000003d2: ISZERO
000003d3: PUSH2 0x010e
000003d6: JUMPI
000003d7: PUSH1 0x06
000003d9: DUP1
000003da: SLOAD
000003db: DUP3
000003dc: SWAP1
000003dd: DUP2
000003de: LT
000003df: ISZERO
000003e0: PUSH2 0x0002
000003e3: JUMPI
000003e4: PUSH1 0x00
000003e6: SWAP2
000003e7: DUP3
000003e8: MSTORE
000003e9: PUSH1 0x02
000003eb: MUL
000003ec: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
0000040d: ADD
0000040e: SWAP1
0000040f: PUSH1 0x06
00000411: DUP1
00000412: SLOAD
00000413: SWAP3
00000414: SLOAD
00000415: PUSH1 0x01
00000417: PUSH1 0xa0
00000419: PUSH1 0x02
0000041b: EXP
0000041c: SUB
0000041d: AND
0000041e: SWAP3
0000041f: DUP5
00000420: SWAP1
00000421: DUP2
00000422: LT
00000423: ISZERO
00000424: PUSH2 0x0002
00000427: JUMPI
00000428: PUSH1 0x02
0000042a: MUL
0000042b: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40
0000044c: ADD
0000044d: SLOAD
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: SWAP1
00000452: SWAP2
00000453: POP
00000454: DUP3
00000455: DUP2
00000456: DUP2
00000457: DUP2
00000458: DUP6
00000459: DUP9
0000045a: DUP4
0000045b: CALL
0000045c: SWAP4
0000045d: POP
0000045e: POP
0000045f: POP
00000460: POP
00000461: POP
00000462: PUSH32 0xe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6
00000483: PUSH1 0x06
00000485: PUSH1 0x00
00000487: POP
00000488: DUP3
00000489: DUP2
0000048a: SLOAD
0000048b: DUP2
0000048c: LT
0000048d: ISZERO
0000048e: PUSH2 0x0002
00000491: JUMPI
00000492: PUSH1 0x00
00000494: DUP3
00000495: SWAP1
00000496: MSTORE
00000497: PUSH1 0x02
00000499: MUL
0000049a: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
000004bb: ADD
000004bc: SLOAD
000004bd: DUP2
000004be: SLOAD
000004bf: PUSH1 0x01
000004c1: PUSH1 0xa0
000004c3: PUSH1 0x02
000004c5: EXP
000004c6: SUB
000004c7: SWAP2
000004c8: SWAP1
000004c9: SWAP2
000004ca: AND
000004cb: SWAP2
000004cc: SWAP1
000004cd: DUP5
000004ce: SWAP1
000004cf: DUP2
000004d0: LT
000004d1: ISZERO
000004d2: PUSH2 0x0002
000004d5: JUMPI
000004d6: PUSH1 0x02
000004d8: MUL
000004d9: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40
000004fa: ADD
000004fb: SLOAD
000004fc: PUSH1 0x40
000004fe: DUP1
000004ff: MLOAD
00000500: PUSH1 0x01
00000502: PUSH1 0xa0
00000504: PUSH1 0x02
00000506: EXP
00000507: SUB
00000508: SWAP5
00000509: SWAP1
0000050a: SWAP5
0000050b: AND
0000050c: DUP5
0000050d: MSTORE
0000050e: PUSH1 0x20
00000510: DUP5
00000511: ADD
00000512: SWAP2
00000513: SWAP1
00000514: SWAP2
00000515: MSTORE
00000516: PUSH1 0x00
00000518: DUP4
00000519: DUP3
0000051a: ADD
0000051b: MSTORE
0000051c: MLOAD
0000051d: SWAP2
0000051e: DUP3
0000051f: SWAP1
00000520: SUB
00000521: PUSH1 0x60
00000523: ADD
00000524: SWAP2
00000525: SWAP1
00000526: POP
00000527: LOG1
00000528: PUSH1 0x01
0000052a: ADD
0000052b: PUSH2 0x03cc
0000052e: 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: 0x6ad91abee7ed301bfdbd91ffcd003f7595490acf12feb50165fa8bee3b3e7546
call_targets: 0x191f9345c2da466dd555443db7bc19d4c55c4172, 0x32cbeef752ea47ec1efa93ccd3aa1f700d891e89
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x6ad91abee7ed301bfdbd91ffcd003f7595490acf12feb50165fa8bee3b3e7546",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x191f9345c2da466dd555443db7bc19d4c55c4172",
        "0x32cbeef752ea47ec1efa93ccd3aa1f700d891e89"
    ],
    "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": "0x01cb3b20",
            "selector": "0x01cb3b20",
            "calldata_variants": [
                "0x01cb3b20",
                "0x01cb3b200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29dcb0cf",
            "selector": "0x29dcb0cf",
            "calldata_variants": [
                "0x29dcb0cf",
                "0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6e66f6e9",
            "selector": "0x6e66f6e9",
            "calldata_variants": [
                "0x6e66f6e9",
                "0x6e66f6e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7a3a0e84",
            "selector": "0x7a3a0e84",
            "calldata_variants": [
                "0x7a3a0e84",
                "0x7a3a0e840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b3e5e7b",
            "selector": "0x7b3e5e7b",
            "calldata_variants": [
                "0x7b3e5e7b",
                "0x7b3e5e7b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa035b1fe",
            "selector": "0xa035b1fe",
            "calldata_variants": [
                "0xa035b1fe",
                "0xa035b1fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc0d3dff",
            "selector": "0xdc0d3dff",
            "calldata_variants": [
                "0xdc0d3dff",
                "0xdc0d3dff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 184,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 303,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 717,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x6ad91abee7ed301bfdbd91ffcd003f7595490acf12feb50165fa8bee3b3e7546
call_targets: 0x191f9345c2da466dd555443db7bc19d4c55c4172, 0x32cbeef752ea47ec1efa93ccd3aa1f700d891e89
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x6ad91abee7ed301bfdbd91ffcd003f7595490acf12feb50165fa8bee3b3e7546",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x191f9345c2da466dd555443db7bc19d4c55c4172",
        "0x32cbeef752ea47ec1efa93ccd3aa1f700d891e89"
    ],
    "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": "0x01cb3b20",
            "selector": "0x01cb3b20",
            "calldata_variants": [
                "0x01cb3b20",
                "0x01cb3b200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29dcb0cf",
            "selector": "0x29dcb0cf",
            "calldata_variants": [
                "0x29dcb0cf",
                "0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6e66f6e9",
            "selector": "0x6e66f6e9",
            "calldata_variants": [
                "0x6e66f6e9",
                "0x6e66f6e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7a3a0e84",
            "selector": "0x7a3a0e84",
            "calldata_variants": [
                "0x7a3a0e84",
                "0x7a3a0e840000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b3e5e7b",
            "selector": "0x7b3e5e7b",
            "calldata_variants": [
                "0x7b3e5e7b",
                "0x7b3e5e7b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa035b1fe",
            "selector": "0xa035b1fe",
            "calldata_variants": [
                "0xa035b1fe",
                "0xa035b1fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc0d3dff",
            "selector": "0xdc0d3dff",
            "calldata_variants": [
                "0xdc0d3dff",
                "0xdc0d3dff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 184,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 303,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 717,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}