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

Analysis Run

019b3836-3150-70d0-b455-9089023dcf18

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
2769 artifact.fetch complete 1 / 3 4 months ago
2770 tool.cast_disasm complete 1 / 3 4 months ago
80067 analysis.bundle complete 1 / 3 2 weeks ago
80068 capability.graph complete 1 / 3 2 weeks ago
80069 detector.run complete 1 / 3 2 weeks ago
80070 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
2
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
0
Total opcodes
476
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x003d
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x41c0e1b5
00000034: EQ
00000035: PUSH2 0x0341
00000038: JUMPI
00000039: PUSH2 0x003d
0000003c: JUMP
0000003d: JUMPDEST
0000003e: PUSH2 0x033f
00000041: JUMPDEST
00000042: PUSH1 0x00
00000044: PUSH1 0x0a
00000046: PUSH2 0x0e10
00000049: TIMESTAMP
0000004a: MOD
0000004b: MUL
0000004c: SWAP1
0000004d: POP
0000004e: DUP1
0000004f: PUSH1 0x00
00000051: PUSH1 0x00
00000053: SWAP1
00000054: SLOAD
00000055: SWAP1
00000056: PUSH2 0x0100
00000059: EXP
0000005a: SWAP1
0000005b: DIV
0000005c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000071: AND
00000072: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000087: AND
00000088: PUSH4 0x70a08231
0000008d: ADDRESS
0000008e: PUSH1 0x40
00000090: MLOAD
00000091: DUP3
00000092: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000000b0: MUL
000000b1: DUP2
000000b2: MSTORE
000000b3: PUSH1 0x04
000000b5: ADD
000000b6: DUP1
000000b7: DUP3
000000b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000cd: AND
000000ce: DUP2
000000cf: MSTORE
000000d0: PUSH1 0x20
000000d2: ADD
000000d3: SWAP2
000000d4: POP
000000d5: POP
000000d6: PUSH1 0x20
000000d8: PUSH1 0x40
000000da: MLOAD
000000db: DUP1
000000dc: DUP4
000000dd: SUB
000000de: DUP2
000000df: PUSH1 0x00
000000e1: DUP8
000000e2: PUSH2 0x61da
000000e5: GAS
000000e6: SUB
000000e7: CALL
000000e8: ISZERO
000000e9: PUSH2 0x0002
000000ec: JUMPI
000000ed: POP
000000ee: POP
000000ef: POP
000000f0: PUSH1 0x40
000000f2: MLOAD
000000f3: DUP1
000000f4: MLOAD
000000f5: SWAP1
000000f6: PUSH1 0x20
000000f8: ADD
000000f9: POP
000000fa: LT
000000fb: ISZERO
000000fc: PUSH2 0x0291
000000ff: JUMPI
00000100: PUSH1 0x00
00000102: PUSH1 0x00
00000104: SWAP1
00000105: SLOAD
00000106: SWAP1
00000107: PUSH2 0x0100
0000010a: EXP
0000010b: SWAP1
0000010c: DIV
0000010d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000122: AND
00000123: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000138: AND
00000139: PUSH4 0xa9059cbb
0000013e: CALLER
0000013f: PUSH1 0x00
00000141: PUSH1 0x00
00000143: SWAP1
00000144: SLOAD
00000145: SWAP1
00000146: PUSH2 0x0100
00000149: EXP
0000014a: SWAP1
0000014b: DIV
0000014c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000161: AND
00000162: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000177: AND
00000178: PUSH4 0x70a08231
0000017d: ADDRESS
0000017e: PUSH1 0x40
00000180: MLOAD
00000181: DUP3
00000182: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000001a0: MUL
000001a1: DUP2
000001a2: MSTORE
000001a3: PUSH1 0x04
000001a5: ADD
000001a6: DUP1
000001a7: DUP3
000001a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001bd: AND
000001be: DUP2
000001bf: MSTORE
000001c0: PUSH1 0x20
000001c2: ADD
000001c3: SWAP2
000001c4: POP
000001c5: POP
000001c6: PUSH1 0x20
000001c8: PUSH1 0x40
000001ca: MLOAD
000001cb: DUP1
000001cc: DUP4
000001cd: SUB
000001ce: DUP2
000001cf: PUSH1 0x00
000001d1: DUP8
000001d2: PUSH2 0x61da
000001d5: GAS
000001d6: SUB
000001d7: CALL
000001d8: ISZERO
000001d9: PUSH2 0x0002
000001dc: JUMPI
000001dd: POP
000001de: POP
000001df: POP
000001e0: PUSH1 0x40
000001e2: MLOAD
000001e3: DUP1
000001e4: MLOAD
000001e5: SWAP1
000001e6: PUSH1 0x20
000001e8: ADD
000001e9: POP
000001ea: PUSH1 0x40
000001ec: MLOAD
000001ed: DUP4
000001ee: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000020c: MUL
0000020d: DUP2
0000020e: MSTORE
0000020f: PUSH1 0x04
00000211: ADD
00000212: DUP1
00000213: DUP4
00000214: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000229: AND
0000022a: DUP2
0000022b: MSTORE
0000022c: PUSH1 0x20
0000022e: ADD
0000022f: DUP3
00000230: DUP2
00000231: MSTORE
00000232: PUSH1 0x20
00000234: ADD
00000235: SWAP3
00000236: POP
00000237: POP
00000238: POP
00000239: PUSH1 0x00
0000023b: PUSH1 0x40
0000023d: MLOAD
0000023e: DUP1
0000023f: DUP4
00000240: SUB
00000241: DUP2
00000242: PUSH1 0x00
00000244: DUP8
00000245: PUSH2 0x61da
00000248: GAS
00000249: SUB
0000024a: CALL
0000024b: ISZERO
0000024c: PUSH2 0x0002
0000024f: JUMPI
00000250: POP
00000251: POP
00000252: POP
00000253: PUSH1 0x01
00000255: PUSH1 0x00
00000257: SWAP1
00000258: SLOAD
00000259: SWAP1
0000025a: PUSH2 0x0100
0000025d: EXP
0000025e: SWAP1
0000025f: DIV
00000260: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000275: AND
00000276: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000028b: AND
0000028c: SELFDESTRUCT
0000028d: PUSH2 0x033b
00000290: JUMP
00000291: JUMPDEST
00000292: PUSH1 0x00
00000294: PUSH1 0x00
00000296: SWAP1
00000297: SLOAD
00000298: SWAP1
00000299: PUSH2 0x0100
0000029c: EXP
0000029d: SWAP1
0000029e: DIV
0000029f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002b4: AND
000002b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ca: AND
000002cb: PUSH4 0xa9059cbb
000002d0: CALLER
000002d1: DUP4
000002d2: PUSH1 0x40
000002d4: MLOAD
000002d5: DUP4
000002d6: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000002f4: MUL
000002f5: DUP2
000002f6: MSTORE
000002f7: PUSH1 0x04
000002f9: ADD
000002fa: DUP1
000002fb: DUP4
000002fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000311: AND
00000312: DUP2
00000313: MSTORE
00000314: PUSH1 0x20
00000316: ADD
00000317: DUP3
00000318: DUP2
00000319: MSTORE
0000031a: PUSH1 0x20
0000031c: ADD
0000031d: SWAP3
0000031e: POP
0000031f: POP
00000320: POP
00000321: PUSH1 0x00
00000323: PUSH1 0x40
00000325: MLOAD
00000326: DUP1
00000327: DUP4
00000328: SUB
00000329: DUP2
0000032a: PUSH1 0x00
0000032c: DUP8
0000032d: PUSH2 0x61da
00000330: GAS
00000331: SUB
00000332: CALL
00000333: ISZERO
00000334: PUSH2 0x0002
00000337: JUMPI
00000338: POP
00000339: POP
0000033a: POP
0000033b: JUMPDEST
0000033c: JUMPDEST
0000033d: POP
0000033e: JUMP
0000033f: JUMPDEST
00000340: STOP
00000341: JUMPDEST
00000342: PUSH2 0x034e
00000345: PUSH1 0x04
00000347: DUP1
00000348: POP
00000349: POP
0000034a: PUSH2 0x0350
0000034d: JUMP
0000034e: JUMPDEST
0000034f: STOP
00000350: JUMPDEST
00000351: PUSH1 0x01
00000353: PUSH1 0x00
00000355: SWAP1
00000356: SLOAD
00000357: SWAP1
00000358: PUSH2 0x0100
0000035b: EXP
0000035c: SWAP1
0000035d: DIV
0000035e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000373: AND
00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000389: AND
0000038a: CALLER
0000038b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a0: AND
000003a1: EQ
000003a2: ISZERO
000003a3: ISZERO
000003a4: PUSH2 0x03ac
000003a7: JUMPI
000003a8: PUSH2 0x0002
000003ab: JUMP
000003ac: JUMPDEST
000003ad: PUSH1 0x00
000003af: PUSH1 0x00
000003b1: SWAP1
000003b2: SLOAD
000003b3: SWAP1
000003b4: PUSH2 0x0100
000003b7: EXP
000003b8: SWAP1
000003b9: DIV
000003ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003cf: AND
000003d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e5: AND
000003e6: PUSH4 0xa9059cbb
000003eb: CALLER
000003ec: PUSH1 0x00
000003ee: PUSH1 0x00
000003f0: SWAP1
000003f1: SLOAD
000003f2: SWAP1
000003f3: PUSH2 0x0100
000003f6: EXP
000003f7: SWAP1
000003f8: DIV
000003f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000040e: AND
0000040f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000424: AND
00000425: PUSH4 0x70a08231
0000042a: ADDRESS
0000042b: PUSH1 0x40
0000042d: MLOAD
0000042e: DUP3
0000042f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000044d: MUL
0000044e: DUP2
0000044f: MSTORE
00000450: PUSH1 0x04
00000452: ADD
00000453: DUP1
00000454: DUP3
00000455: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000046a: AND
0000046b: DUP2
0000046c: MSTORE
0000046d: PUSH1 0x20
0000046f: ADD
00000470: SWAP2
00000471: POP
00000472: POP
00000473: PUSH1 0x20
00000475: PUSH1 0x40
00000477: MLOAD
00000478: DUP1
00000479: DUP4
0000047a: SUB
0000047b: DUP2
0000047c: PUSH1 0x00
0000047e: DUP8
0000047f: PUSH2 0x61da
00000482: GAS
00000483: SUB
00000484: CALL
00000485: ISZERO
00000486: PUSH2 0x0002
00000489: JUMPI
0000048a: POP
0000048b: POP
0000048c: POP
0000048d: PUSH1 0x40
0000048f: MLOAD
00000490: DUP1
00000491: MLOAD
00000492: SWAP1
00000493: PUSH1 0x20
00000495: ADD
00000496: POP
00000497: PUSH1 0x40
00000499: MLOAD
0000049a: DUP4
0000049b: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000004b9: MUL
000004ba: DUP2
000004bb: MSTORE
000004bc: PUSH1 0x04
000004be: ADD
000004bf: DUP1
000004c0: DUP4
000004c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004d6: AND
000004d7: DUP2
000004d8: MSTORE
000004d9: PUSH1 0x20
000004db: ADD
000004dc: DUP3
000004dd: DUP2
000004de: MSTORE
000004df: PUSH1 0x20
000004e1: ADD
000004e2: SWAP3
000004e3: POP
000004e4: POP
000004e5: POP
000004e6: PUSH1 0x00
000004e8: PUSH1 0x40
000004ea: MLOAD
000004eb: DUP1
000004ec: DUP4
000004ed: SUB
000004ee: DUP2
000004ef: PUSH1 0x00
000004f1: DUP8
000004f2: PUSH2 0x61da
000004f5: GAS
000004f6: SUB
000004f7: CALL
000004f8: ISZERO
000004f9: PUSH2 0x0002
000004fc: JUMPI
000004fd: POP
000004fe: POP
000004ff: POP
00000500: PUSH1 0x01
00000502: PUSH1 0x00
00000504: SWAP1
00000505: SLOAD
00000506: SWAP1
00000507: PUSH2 0x0100
0000050a: EXP
0000050b: SWAP1
0000050c: DIV
0000050d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000522: AND
00000523: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000538: AND
00000539: SELFDESTRUCT
0000053a: JUMPDEST
0000053b: 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
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xb19df3e1ec6e698ed52fe60dccbbb1cd12d47cee150d49804d6628627e0c6e0b
call_targets: 0xe52186af4fcfe5241fc11fc5feec364591ec9843
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb19df3e1ec6e698ed52fe60dccbbb1cd12d47cee150d49804d6628627e0c6e0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe52186af4fcfe5241fc11fc5feec364591ec9843"
    ],
    "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": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 231,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 471,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 586,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [
        {
            "pc": 906,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 6
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xb19df3e1ec6e698ed52fe60dccbbb1cd12d47cee150d49804d6628627e0c6e0b
call_targets: 0xe52186af4fcfe5241fc11fc5feec364591ec9843
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb19df3e1ec6e698ed52fe60dccbbb1cd12d47cee150d49804d6628627e0c6e0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe52186af4fcfe5241fc11fc5feec364591ec9843"
    ],
    "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": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 231,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 471,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 586,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": [
        {
            "pc": 906,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xf68045327c53fabbd2f0e83a86b4bf49784e35eae47c42a5075750b32e241f31
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 2,
    "trace_id": "0xf68045327c53fabbd2f0e83a86b4bf49784e35eae47c42a5075750b32e241f31",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 906,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "selfdestruct_count": 2
}