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

Analysis Run

019b477e-c459-7397-a773-abe5f86ca442

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 22, 2025 7:17 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
Verified
Review Backing
Not yet
Best current signal
Untrusted DELEGATECALL target 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
25393 artifact.fetch complete 1 / 3 3 months ago
25394 tool.cast_disasm complete 1 / 3 3 months ago
90793 analysis.bundle complete 1 / 3 1 week ago
90794 capability.graph complete 1 / 3 1 week ago
90795 detector.run complete 1 / 3 1 week ago
90796 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate

No codex job recorded yet.

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
2
Total opcodes
467
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0022
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x5c60da1b
00000019: EQ
0000001a: PUSH2 0x0039
0000001d: JUMPI
0000001e: PUSH2 0x0031
00000021: JUMP
00000022: JUMPDEST
00000023: CALLDATASIZE
00000024: PUSH2 0x0031
00000027: JUMPI
00000028: PUSH2 0x002f
0000002b: PUSH2 0x0077
0000002e: JUMP
0000002f: JUMPDEST
00000030: STOP
00000031: JUMPDEST
00000032: PUSH2 0x002f
00000035: PUSH2 0x0077
00000038: JUMP
00000039: JUMPDEST
0000003a: CALLVALUE
0000003b: DUP1
0000003c: ISZERO
0000003d: PUSH2 0x0045
00000040: JUMPI
00000041: PUSH1 0x00
00000043: DUP1
00000044: REVERT
00000045: JUMPDEST
00000046: POP
00000047: PUSH2 0x004e
0000004a: PUSH2 0x0089
0000004d: JUMP
0000004e: JUMPDEST
0000004f: PUSH1 0x40
00000051: MLOAD
00000052: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000067: SWAP1
00000068: SWAP2
00000069: AND
0000006a: DUP2
0000006b: MSTORE
0000006c: PUSH1 0x20
0000006e: ADD
0000006f: PUSH1 0x40
00000071: MLOAD
00000072: DUP1
00000073: SWAP2
00000074: SUB
00000075: SWAP1
00000076: RETURN
00000077: JUMPDEST
00000078: PUSH2 0x0087
0000007b: PUSH2 0x0082
0000007e: PUSH2 0x0089
00000081: JUMP
00000082: JUMPDEST
00000083: PUSH2 0x00cd
00000086: JUMP
00000087: JUMPDEST
00000088: JUMP
00000089: JUMPDEST
0000008a: PUSH1 0x00
0000008c: PUSH2 0x0093
0000008f: PUSH2 0x00f1
00000092: JUMP
00000093: JUMPDEST
00000094: SWAP1
00000095: POP
00000096: SWAP1
00000097: JUMP
00000098: JUMPDEST
00000099: EXTCODESIZE
0000009a: ISZERO
0000009b: ISZERO
0000009c: SWAP1
0000009d: JUMP
0000009e: JUMPDEST
0000009f: SWAP1
000000a0: JUMP
000000a1: JUMPDEST
000000a2: PUSH1 0x60
000000a4: PUSH2 0x00c6
000000a7: DUP4
000000a8: DUP4
000000a9: PUSH1 0x40
000000ab: MLOAD
000000ac: DUP1
000000ad: PUSH1 0x60
000000af: ADD
000000b0: PUSH1 0x40
000000b2: MSTORE
000000b3: DUP1
000000b4: PUSH1 0x27
000000b6: DUP2
000000b7: MSTORE
000000b8: PUSH1 0x20
000000ba: ADD
000000bb: PUSH2 0x0383
000000be: PUSH1 0x27
000000c0: SWAP2
000000c1: CODECOPY
000000c2: PUSH2 0x013d
000000c5: JUMP
000000c6: JUMPDEST
000000c7: SWAP4
000000c8: SWAP3
000000c9: POP
000000ca: POP
000000cb: POP
000000cc: JUMP
000000cd: JUMPDEST
000000ce: CALLDATASIZE
000000cf: PUSH1 0x00
000000d1: DUP1
000000d2: CALLDATACOPY
000000d3: PUSH1 0x00
000000d5: DUP1
000000d6: CALLDATASIZE
000000d7: PUSH1 0x00
000000d9: DUP5
000000da: GAS
000000db: DELEGATECALL
000000dc: RETURNDATASIZE
000000dd: PUSH1 0x00
000000df: DUP1
000000e0: RETURNDATACOPY
000000e1: DUP1
000000e2: DUP1
000000e3: ISZERO
000000e4: PUSH2 0x00ec
000000e7: JUMPI
000000e8: RETURNDATASIZE
000000e9: PUSH1 0x00
000000eb: RETURN
000000ec: JUMPDEST
000000ed: RETURNDATASIZE
000000ee: PUSH1 0x00
000000f0: REVERT
000000f1: JUMPDEST
000000f2: PUSH1 0x00
000000f4: PUSH2 0x0121
000000f7: PUSH2 0x009e
000000fa: PUSH1 0x01
000000fc: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd
0000011d: PUSH2 0x02a7
00000120: JUMP
00000121: JUMPDEST
00000122: SLOAD
00000123: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000138: AND
00000139: SWAP2
0000013a: SWAP1
0000013b: POP
0000013c: JUMP
0000013d: JUMPDEST
0000013e: PUSH1 0x60
00000140: DUP4
00000141: EXTCODESIZE
00000142: PUSH2 0x01d2
00000145: JUMPI
00000146: PUSH1 0x40
00000148: MLOAD
00000149: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000016a: DUP2
0000016b: MSTORE
0000016c: PUSH1 0x20
0000016e: PUSH1 0x04
00000170: DUP3
00000171: ADD
00000172: MSTORE
00000173: PUSH1 0x26
00000175: PUSH1 0x24
00000177: DUP3
00000178: ADD
00000179: MSTORE
0000017a: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f
0000019b: PUSH1 0x44
0000019d: DUP3
0000019e: ADD
0000019f: MSTORE
000001a0: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000
000001c1: PUSH1 0x64
000001c3: DUP3
000001c4: ADD
000001c5: MSTORE
000001c6: PUSH1 0x84
000001c8: ADD
000001c9: JUMPDEST
000001ca: PUSH1 0x40
000001cc: MLOAD
000001cd: DUP1
000001ce: SWAP2
000001cf: SUB
000001d0: SWAP1
000001d1: REVERT
000001d2: JUMPDEST
000001d3: PUSH1 0x00
000001d5: DUP1
000001d6: DUP6
000001d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ec: AND
000001ed: DUP6
000001ee: PUSH1 0x40
000001f0: MLOAD
000001f1: PUSH2 0x01fa
000001f4: SWAP2
000001f5: SWAP1
000001f6: PUSH2 0x0315
000001f9: JUMP
000001fa: JUMPDEST
000001fb: PUSH1 0x00
000001fd: PUSH1 0x40
000001ff: MLOAD
00000200: DUP1
00000201: DUP4
00000202: SUB
00000203: DUP2
00000204: DUP6
00000205: GAS
00000206: DELEGATECALL
00000207: SWAP2
00000208: POP
00000209: POP
0000020a: RETURNDATASIZE
0000020b: DUP1
0000020c: PUSH1 0x00
0000020e: DUP2
0000020f: EQ
00000210: PUSH2 0x0235
00000213: JUMPI
00000214: PUSH1 0x40
00000216: MLOAD
00000217: SWAP2
00000218: POP
00000219: PUSH1 0x1f
0000021b: NOT
0000021c: PUSH1 0x3f
0000021e: RETURNDATASIZE
0000021f: ADD
00000220: AND
00000221: DUP3
00000222: ADD
00000223: PUSH1 0x40
00000225: MSTORE
00000226: RETURNDATASIZE
00000227: DUP3
00000228: MSTORE
00000229: RETURNDATASIZE
0000022a: PUSH1 0x00
0000022c: PUSH1 0x20
0000022e: DUP5
0000022f: ADD
00000230: RETURNDATACOPY
00000231: PUSH2 0x023a
00000234: JUMP
00000235: JUMPDEST
00000236: PUSH1 0x60
00000238: SWAP2
00000239: POP
0000023a: JUMPDEST
0000023b: POP
0000023c: SWAP2
0000023d: POP
0000023e: SWAP2
0000023f: POP
00000240: PUSH2 0x024a
00000243: DUP3
00000244: DUP3
00000245: DUP7
00000246: PUSH2 0x0254
00000249: JUMP
0000024a: JUMPDEST
0000024b: SWAP7
0000024c: SWAP6
0000024d: POP
0000024e: POP
0000024f: POP
00000250: POP
00000251: POP
00000252: POP
00000253: JUMP
00000254: JUMPDEST
00000255: PUSH1 0x60
00000257: DUP4
00000258: ISZERO
00000259: PUSH2 0x0263
0000025c: JUMPI
0000025d: POP
0000025e: DUP2
0000025f: PUSH2 0x00c6
00000262: JUMP
00000263: JUMPDEST
00000264: DUP3
00000265: MLOAD
00000266: ISZERO
00000267: PUSH2 0x0273
0000026a: JUMPI
0000026b: DUP3
0000026c: MLOAD
0000026d: DUP1
0000026e: DUP5
0000026f: PUSH1 0x20
00000271: ADD
00000272: REVERT
00000273: JUMPDEST
00000274: DUP2
00000275: PUSH1 0x40
00000277: MLOAD
00000278: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000299: DUP2
0000029a: MSTORE
0000029b: PUSH1 0x04
0000029d: ADD
0000029e: PUSH2 0x01c9
000002a1: SWAP2
000002a2: SWAP1
000002a3: PUSH2 0x0331
000002a6: JUMP
000002a7: JUMPDEST
000002a8: PUSH1 0x00
000002aa: DUP3
000002ab: DUP3
000002ac: LT
000002ad: ISZERO
000002ae: PUSH2 0x02e0
000002b1: JUMPI
000002b2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000002d3: PUSH1 0x00
000002d5: MSTORE
000002d6: PUSH1 0x11
000002d8: PUSH1 0x04
000002da: MSTORE
000002db: PUSH1 0x24
000002dd: PUSH1 0x00
000002df: REVERT
000002e0: JUMPDEST
000002e1: POP
000002e2: SUB
000002e3: SWAP1
000002e4: JUMP
000002e5: JUMPDEST
000002e6: PUSH1 0x00
000002e8: JUMPDEST
000002e9: DUP4
000002ea: DUP2
000002eb: LT
000002ec: ISZERO
000002ed: PUSH2 0x0300
000002f0: JUMPI
000002f1: DUP2
000002f2: DUP2
000002f3: ADD
000002f4: MLOAD
000002f5: DUP4
000002f6: DUP3
000002f7: ADD
000002f8: MSTORE
000002f9: PUSH1 0x20
000002fb: ADD
000002fc: PUSH2 0x02e8
000002ff: JUMP
00000300: JUMPDEST
00000301: DUP4
00000302: DUP2
00000303: GT
00000304: ISZERO
00000305: PUSH2 0x030f
00000308: JUMPI
00000309: PUSH1 0x00
0000030b: DUP5
0000030c: DUP5
0000030d: ADD
0000030e: MSTORE
0000030f: JUMPDEST
00000310: POP
00000311: POP
00000312: POP
00000313: POP
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH1 0x00
00000318: DUP3
00000319: MLOAD
0000031a: PUSH2 0x0327
0000031d: DUP2
0000031e: DUP5
0000031f: PUSH1 0x20
00000321: DUP8
00000322: ADD
00000323: PUSH2 0x02e5
00000326: JUMP
00000327: JUMPDEST
00000328: SWAP2
00000329: SWAP1
0000032a: SWAP2
0000032b: ADD
0000032c: SWAP3
0000032d: SWAP2
0000032e: POP
0000032f: POP
00000330: JUMP
00000331: JUMPDEST
00000332: PUSH1 0x20
00000334: DUP2
00000335: MSTORE
00000336: PUSH1 0x00
00000338: DUP3
00000339: MLOAD
0000033a: DUP1
0000033b: PUSH1 0x20
0000033d: DUP5
0000033e: ADD
0000033f: MSTORE
00000340: PUSH2 0x0350
00000343: DUP2
00000344: PUSH1 0x40
00000346: DUP6
00000347: ADD
00000348: PUSH1 0x20
0000034a: DUP8
0000034b: ADD
0000034c: PUSH2 0x02e5
0000034f: JUMP
00000350: JUMPDEST
00000351: PUSH1 0x1f
00000353: ADD
00000354: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000375: AND
00000376: SWAP2
00000377: SWAP1
00000378: SWAP2
00000379: ADD
0000037a: PUSH1 0x40
0000037c: ADD
0000037d: SWAP3
0000037e: SWAP2
0000037f: POP
00000380: POP
00000381: JUMP
00000382: INVALID
00000383: COINBASE
00000384: PUSH5 0x6472657373
0000038a: GASPRICE
0000038b: KECCAK256
0000038c: PUSH13 0x6f772d6c6576656c2064656c65
0000039a: PUSH8 0x6174652063616c6c
000003a3: KECCAK256
000003a4: PUSH7 0x61696c6564a264
000003ac: PUSH10 0x7066735822122050e427
000003b7: PUSH23 0x4bda8c16f2bd8c4296fc03be3456da03a99a94ee435885
000003cf: DUP6
000003d0: SWAP1
000003d1: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xa99ebaa5d749477f2d4e591af1da37c68cb1b7432b4c3665d2c03214542466e8
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 12,
    "trace_id": "0xa99ebaa5d749477f2d4e591af1da37c68cb1b7432b4c3665d2c03214542466e8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "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": "0x5c60da1b",
            "selector": "0x5c60da1b",
            "calldata_variants": [
                "0x5c60da1b",
                "0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 219,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 518,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}