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

Analysis Run

019b3836-2978-71be-be40-c821c710debc

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
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 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
1429 artifact.fetch complete 1 / 3 4 months ago
1430 tool.cast_disasm complete 1 / 3 4 months ago
78819 analysis.bundle complete 1 / 3 2 weeks ago
78820 capability.graph complete 1 / 3 2 weeks ago
78821 detector.run complete 1 / 3 2 weeks ago
78822 validation.fork complete 1 / 3 2 weeks 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

No codex job recorded yet.

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
0
Total opcodes
557
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0xe0
00000007: PUSH1 0x02
00000009: EXP
0000000a: PUSH1 0x00
0000000c: CALLDATALOAD
0000000d: DIV
0000000e: PUSH4 0x80cd180d
00000013: DUP2
00000014: EQ
00000015: PUSH2 0x0047
00000018: JUMPI
00000019: DUP1
0000001a: PUSH4 0x9f3af7b2
0000001f: EQ
00000020: PUSH2 0x006a
00000023: JUMPI
00000024: DUP1
00000025: PUSH4 0xa87430ba
0000002a: EQ
0000002b: PUSH2 0x008c
0000002e: JUMPI
0000002f: DUP1
00000030: PUSH4 0xc3c90e64
00000035: EQ
00000036: PUSH2 0x00c4
00000039: JUMPI
0000003a: DUP1
0000003b: PUSH4 0xfa287611
00000040: EQ
00000041: PUSH2 0x00e7
00000044: JUMPI
00000045: JUMPDEST
00000046: STOP
00000047: JUMPDEST
00000048: PUSH2 0x0045
0000004b: PUSH1 0x04
0000004d: CALLDATALOAD
0000004e: JUMPDEST
0000004f: PUSH1 0x00
00000051: SLOAD
00000052: PUSH1 0x01
00000054: PUSH1 0xa0
00000056: PUSH1 0x02
00000058: EXP
00000059: SUB
0000005a: SWAP1
0000005b: DUP2
0000005c: AND
0000005d: CALLER
0000005e: SWAP1
0000005f: SWAP2
00000060: AND
00000061: EQ
00000062: PUSH2 0x02e1
00000065: JUMPI
00000066: PUSH2 0x0002
00000069: JUMP
0000006a: JUMPDEST
0000006b: PUSH2 0x0045
0000006e: PUSH1 0x04
00000070: CALLDATALOAD
00000071: PUSH1 0x00
00000073: SLOAD
00000074: PUSH1 0x01
00000076: PUSH1 0xa0
00000078: PUSH1 0x02
0000007a: EXP
0000007b: SUB
0000007c: SWAP1
0000007d: DUP2
0000007e: AND
0000007f: CALLER
00000080: SWAP1
00000081: SWAP2
00000082: AND
00000083: EQ
00000084: PUSH2 0x014a
00000087: JUMPI
00000088: PUSH2 0x0002
0000008b: JUMP
0000008c: JUMPDEST
0000008d: PUSH2 0x011e
00000090: PUSH1 0x04
00000092: CALLDATALOAD
00000093: PUSH1 0x01
00000095: PUSH1 0x20
00000097: MSTORE
00000098: PUSH1 0x00
0000009a: SWAP1
0000009b: DUP2
0000009c: MSTORE
0000009d: PUSH1 0x40
0000009f: SWAP1
000000a0: KECCAK256
000000a1: SLOAD
000000a2: PUSH1 0x01
000000a4: PUSH1 0xa0
000000a6: PUSH1 0x02
000000a8: EXP
000000a9: SUB
000000aa: DUP2
000000ab: AND
000000ac: SWAP1
000000ad: PUSH1 0xa0
000000af: PUSH1 0x02
000000b1: EXP
000000b2: DUP2
000000b3: DIV
000000b4: PUSH1 0xff
000000b6: SWAP1
000000b7: DUP2
000000b8: AND
000000b9: SWAP2
000000ba: PUSH1 0xa8
000000bc: PUSH1 0x02
000000be: EXP
000000bf: SWAP1
000000c0: DIV
000000c1: AND
000000c2: DUP4
000000c3: JUMP
000000c4: JUMPDEST
000000c5: PUSH2 0x0045
000000c8: PUSH1 0x04
000000ca: CALLDATALOAD
000000cb: JUMPDEST
000000cc: PUSH1 0x00
000000ce: SLOAD
000000cf: PUSH1 0x01
000000d1: PUSH1 0xa0
000000d3: PUSH1 0x02
000000d5: EXP
000000d6: SUB
000000d7: SWAP1
000000d8: DUP2
000000d9: AND
000000da: CALLER
000000db: SWAP1
000000dc: SWAP2
000000dd: AND
000000de: EQ
000000df: PUSH2 0x026a
000000e2: JUMPI
000000e3: PUSH2 0x0002
000000e6: JUMP
000000e7: JUMPDEST
000000e8: PUSH1 0x01
000000ea: PUSH1 0xa0
000000ec: PUSH1 0x02
000000ee: EXP
000000ef: SUB
000000f0: PUSH1 0x04
000000f2: CALLDATALOAD
000000f3: AND
000000f4: PUSH1 0x00
000000f6: SWAP1
000000f7: DUP2
000000f8: MSTORE
000000f9: PUSH1 0x01
000000fb: PUSH1 0x20
000000fd: MSTORE
000000fe: PUSH1 0x40
00000100: SWAP1
00000101: KECCAK256
00000102: SLOAD
00000103: PUSH1 0xa0
00000105: PUSH1 0x02
00000107: EXP
00000108: SWAP1
00000109: DIV
0000010a: PUSH1 0xff
0000010c: AND
0000010d: PUSH1 0x40
0000010f: DUP1
00000110: MLOAD
00000111: SWAP2
00000112: DUP3
00000113: MSTORE
00000114: MLOAD
00000115: SWAP1
00000116: DUP2
00000117: SWAP1
00000118: SUB
00000119: PUSH1 0x20
0000011b: ADD
0000011c: SWAP1
0000011d: RETURN
0000011e: JUMPDEST
0000011f: PUSH1 0x40
00000121: DUP1
00000122: MLOAD
00000123: PUSH1 0x01
00000125: PUSH1 0xa0
00000127: PUSH1 0x02
00000129: EXP
0000012a: SUB
0000012b: SWAP5
0000012c: SWAP1
0000012d: SWAP5
0000012e: AND
0000012f: DUP5
00000130: MSTORE
00000131: PUSH1 0xff
00000133: SWAP3
00000134: SWAP1
00000135: SWAP3
00000136: AND
00000137: PUSH1 0x20
00000139: DUP5
0000013a: ADD
0000013b: MSTORE
0000013c: DUP3
0000013d: DUP3
0000013e: ADD
0000013f: MSTORE
00000140: MLOAD
00000141: SWAP1
00000142: DUP2
00000143: SWAP1
00000144: SUB
00000145: PUSH1 0x60
00000147: ADD
00000148: SWAP1
00000149: RETURN
0000014a: JUMPDEST
0000014b: PUSH1 0x00
0000014d: SLOAD
0000014e: PUSH1 0x01
00000150: PUSH1 0xa0
00000152: PUSH1 0x02
00000154: EXP
00000155: SUB
00000156: SWAP1
00000157: DUP2
00000158: AND
00000159: CALLER
0000015a: SWAP1
0000015b: SWAP2
0000015c: AND
0000015d: EQ
0000015e: PUSH2 0x0165
00000161: JUMPI
00000162: JUMPDEST
00000163: POP
00000164: JUMP
00000165: JUMPDEST
00000166: PUSH1 0x01
00000168: PUSH1 0xa0
0000016a: PUSH1 0x02
0000016c: EXP
0000016d: SUB
0000016e: DUP2
0000016f: AND
00000170: PUSH1 0x00
00000172: SWAP1
00000173: DUP2
00000174: MSTORE
00000175: PUSH1 0x01
00000177: PUSH1 0x20
00000179: MSTORE
0000017a: PUSH1 0x40
0000017c: DUP2
0000017d: KECCAK256
0000017e: SLOAD
0000017f: PUSH1 0xa8
00000181: PUSH1 0x02
00000183: EXP
00000184: SWAP1
00000185: DIV
00000186: PUSH1 0xff
00000188: AND
00000189: EQ
0000018a: ISZERO
0000018b: PUSH2 0x0220
0000018e: JUMPI
0000018f: PUSH1 0x40
00000191: PUSH1 0x00
00000193: DUP2
00000194: DUP2
00000195: KECCAK256
00000196: DUP1
00000197: SLOAD
00000198: DUP4
00000199: MLOAD
0000019a: PUSH1 0x60
0000019c: DUP2
0000019d: ADD
0000019e: DUP6
0000019f: MSTORE
000001a0: DUP6
000001a1: DUP2
000001a2: MSTORE
000001a3: PUSH1 0x20
000001a5: DUP2
000001a6: DUP2
000001a7: ADD
000001a8: DUP6
000001a9: DUP2
000001aa: MSTORE
000001ab: PUSH1 0x01
000001ad: SWAP7
000001ae: DUP4
000001af: ADD
000001b0: DUP8
000001b1: DUP2
000001b2: MSTORE
000001b3: PUSH1 0x01
000001b5: PUSH1 0xa0
000001b7: PUSH1 0x02
000001b9: EXP
000001ba: SUB
000001bb: DUP10
000001bc: AND
000001bd: SWAP1
000001be: SWAP7
000001bf: MSTORE
000001c0: SWAP6
000001c1: SWAP1
000001c2: MSTORE
000001c3: MLOAD
000001c4: SWAP4
000001c5: MLOAD
000001c6: SWAP3
000001c7: MLOAD
000001c8: PUSH1 0xa8
000001ca: PUSH1 0x02
000001cc: EXP
000001cd: MUL
000001ce: PUSH22 0xff000000000000000000000000000000000000000000
000001e5: NOT
000001e6: PUSH1 0xa0
000001e8: PUSH1 0x02
000001ea: EXP
000001eb: SWAP5
000001ec: SWAP1
000001ed: SWAP5
000001ee: MUL
000001ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000204: NOT
00000205: SWAP1
00000206: SWAP3
00000207: AND
00000208: SWAP1
00000209: SWAP5
0000020a: OR
0000020b: PUSH1 0xa0
0000020d: PUSH1 0x02
0000020f: EXP
00000210: PUSH1 0xff
00000212: MUL
00000213: NOT
00000214: AND
00000215: OR
00000216: SWAP2
00000217: SWAP1
00000218: SWAP2
00000219: AND
0000021a: SWAP2
0000021b: SWAP1
0000021c: SWAP2
0000021d: OR
0000021e: SWAP1
0000021f: SSTORE
00000220: JUMPDEST
00000221: PUSH1 0x01
00000223: PUSH1 0xa0
00000225: PUSH1 0x02
00000227: EXP
00000228: SUB
00000229: DUP2
0000022a: AND
0000022b: PUSH1 0x00
0000022d: SWAP1
0000022e: DUP2
0000022f: MSTORE
00000230: PUSH1 0x01
00000232: PUSH1 0x20
00000234: DUP2
00000235: SWAP1
00000236: MSTORE
00000237: PUSH1 0x40
00000239: SWAP1
0000023a: SWAP2
0000023b: KECCAK256
0000023c: DUP1
0000023d: SLOAD
0000023e: PUSH1 0xa0
00000240: PUSH1 0x02
00000242: EXP
00000243: DUP1
00000244: DUP3
00000245: DIV
00000246: PUSH1 0xff
00000248: AND
00000249: SWAP1
0000024a: SWAP4
0000024b: ADD
0000024c: SWAP1
0000024d: SWAP3
0000024e: MUL
0000024f: PUSH1 0xa0
00000251: PUSH1 0x02
00000253: EXP
00000254: PUSH1 0xff
00000256: MUL
00000257: NOT
00000258: SWAP3
00000259: SWAP1
0000025a: SWAP3
0000025b: AND
0000025c: SWAP2
0000025d: SWAP1
0000025e: SWAP2
0000025f: OR
00000260: SWAP1
00000261: SSTORE
00000262: PUSH2 0x0162
00000265: DUP2
00000266: PUSH2 0x00cb
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x00
0000026d: SLOAD
0000026e: PUSH1 0x01
00000270: PUSH1 0xa0
00000272: PUSH1 0x02
00000274: EXP
00000275: SUB
00000276: SWAP1
00000277: DUP2
00000278: AND
00000279: CALLER
0000027a: SWAP1
0000027b: SWAP2
0000027c: AND
0000027d: EQ
0000027e: PUSH2 0x0286
00000281: JUMPI
00000282: PUSH2 0x0162
00000285: JUMP
00000286: JUMPDEST
00000287: PUSH1 0x01
00000289: PUSH1 0xa0
0000028b: PUSH1 0x02
0000028d: EXP
0000028e: SUB
0000028f: DUP2
00000290: AND
00000291: PUSH1 0x00
00000293: SWAP1
00000294: DUP2
00000295: MSTORE
00000296: PUSH1 0x01
00000298: PUSH1 0x20
0000029a: MSTORE
0000029b: PUSH1 0x40
0000029d: SWAP1
0000029e: KECCAK256
0000029f: SLOAD
000002a0: PUSH1 0x02
000002a2: PUSH1 0xa0
000002a4: PUSH1 0x02
000002a6: EXP
000002a7: SWAP1
000002a8: SWAP2
000002a9: DIV
000002aa: PUSH1 0xff
000002ac: AND
000002ad: LT
000002ae: PUSH2 0x0162
000002b1: JUMPI
000002b2: PUSH2 0x02ba
000002b5: DUP2
000002b6: PUSH2 0x004e
000002b9: JUMP
000002ba: JUMPDEST
000002bb: PUSH1 0x01
000002bd: PUSH1 0xa0
000002bf: PUSH1 0x02
000002c1: EXP
000002c2: SUB
000002c3: AND
000002c4: PUSH1 0x00
000002c6: SWAP1
000002c7: DUP2
000002c8: MSTORE
000002c9: PUSH1 0x01
000002cb: PUSH1 0x20
000002cd: MSTORE
000002ce: PUSH1 0x40
000002d0: SWAP1
000002d1: KECCAK256
000002d2: DUP1
000002d3: SLOAD
000002d4: PUSH1 0xa0
000002d6: PUSH1 0x02
000002d8: EXP
000002d9: PUSH1 0xff
000002db: MUL
000002dc: NOT
000002dd: AND
000002de: SWAP1
000002df: SSTORE
000002e0: JUMP
000002e1: JUMPDEST
000002e2: PUSH1 0x00
000002e4: SLOAD
000002e5: PUSH1 0x01
000002e7: PUSH1 0xa0
000002e9: PUSH1 0x02
000002eb: EXP
000002ec: SUB
000002ed: SWAP1
000002ee: DUP2
000002ef: AND
000002f0: CALLER
000002f1: SWAP1
000002f2: SWAP2
000002f3: AND
000002f4: EQ
000002f5: PUSH2 0x02fd
000002f8: JUMPI
000002f9: PUSH2 0x0162
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH1 0x40
00000300: MLOAD
00000301: PUSH1 0x01
00000303: PUSH1 0xa0
00000305: PUSH1 0x02
00000307: EXP
00000308: SUB
00000309: DUP3
0000030a: AND
0000030b: SWAP1
0000030c: PUSH1 0x00
0000030e: SWAP1
0000030f: PUSH7 0x038d7ea4c68000
00000317: SWAP1
00000318: DUP3
00000319: DUP2
0000031a: DUP2
0000031b: DUP2
0000031c: DUP6
0000031d: DUP9
0000031e: DUP4
0000031f: CALL
00000320: POP
00000321: POP
00000322: POP
00000323: POP
00000324: POP
00000325: POP
00000326: 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 no no
view
trace_id: 0x3cde5dedf9c473c7f5d77d6e38ea5778d03b24734812e73846153d22ed2d3927
call_targets: 0x2026c154fac61d5b8c72236b6b2ab31268628893
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3cde5dedf9c473c7f5d77d6e38ea5778d03b24734812e73846153d22ed2d3927",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2026c154fac61d5b8c72236b6b2ab31268628893"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x80cd180d",
            "selector": "0x80cd180d",
            "calldata_variants": [
                "0x80cd180d",
                "0x80cd180d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9f3af7b2",
            "selector": "0x9f3af7b2",
            "calldata_variants": [
                "0x9f3af7b2",
                "0x9f3af7b20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa87430ba",
            "selector": "0xa87430ba",
            "calldata_variants": [
                "0xa87430ba",
                "0xa87430ba0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3c90e64",
            "selector": "0xc3c90e64",
            "calldata_variants": [
                "0xc3c90e64",
                "0xc3c90e640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa287611",
            "selector": "0xfa287611",
            "calldata_variants": [
                "0xfa287611",
                "0xfa2876110000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [],
    "untrusted_call_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x3cde5dedf9c473c7f5d77d6e38ea5778d03b24734812e73846153d22ed2d3927
call_targets: 0x2026c154fac61d5b8c72236b6b2ab31268628893
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3cde5dedf9c473c7f5d77d6e38ea5778d03b24734812e73846153d22ed2d3927",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2026c154fac61d5b8c72236b6b2ab31268628893"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x80cd180d",
            "selector": "0x80cd180d",
            "calldata_variants": [
                "0x80cd180d",
                "0x80cd180d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9f3af7b2",
            "selector": "0x9f3af7b2",
            "calldata_variants": [
                "0x9f3af7b2",
                "0x9f3af7b20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa87430ba",
            "selector": "0xa87430ba",
            "calldata_variants": [
                "0xa87430ba",
                "0xa87430ba0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3c90e64",
            "selector": "0xc3c90e64",
            "calldata_variants": [
                "0xc3c90e64",
                "0xc3c90e640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa287611",
            "selector": "0xfa287611",
            "calldata_variants": [
                "0xfa287611",
                "0xfa2876110000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}