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

Analysis Run

019ba9a5-c63b-7165-b933-691274417885

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 8:42 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 DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
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
37087 artifact.fetch complete 1 / 3 3 months ago
37088 proxy.resolve complete 1 / 3 3 months ago
37089 tool.cast_disasm complete 1 / 3 3 months ago
37090 analysis.bundle complete 1 / 3 3 months ago
37091 capability.graph complete 1 / 3 3 months ago
37092 detector.run complete 1 / 3 3 months ago
37093 validation.fork complete 1 / 3 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes onchain_only
Verified Source: no
Proxy evidence
{
    "method": "beacon",
    "status": "onchain_only",
    "implementation": "0x2c3e854f6a2acf403bc9c9eeb3ab0c2519d1932b",
    "onchain_method": "beacon"
}

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)
1
EXT*/BALANCE
4
Total opcodes
514
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: PUSH2 0x0013
00000009: JUMPI
0000000a: PUSH2 0x0011
0000000d: PUSH2 0x0017
00000010: JUMP
00000011: JUMPDEST
00000012: STOP
00000013: JUMPDEST
00000014: PUSH2 0x0011
00000017: JUMPDEST
00000018: PUSH2 0x0027
0000001b: PUSH2 0x0022
0000001e: PUSH2 0x0074
00000021: JUMP
00000022: JUMPDEST
00000023: PUSH2 0x0136
00000026: JUMP
00000027: JUMPDEST
00000028: JUMP
00000029: JUMPDEST
0000002a: PUSH1 0x60
0000002c: PUSH2 0x004e
0000002f: DUP4
00000030: DUP4
00000031: PUSH1 0x40
00000033: MLOAD
00000034: DUP1
00000035: PUSH1 0x60
00000037: ADD
00000038: PUSH1 0x40
0000003a: MSTORE
0000003b: DUP1
0000003c: PUSH1 0x27
0000003e: DUP2
0000003f: MSTORE
00000040: PUSH1 0x20
00000042: ADD
00000043: PUSH2 0x03ae
00000046: PUSH1 0x27
00000048: SWAP2
00000049: CODECOPY
0000004a: PUSH2 0x015a
0000004d: JUMP
0000004e: JUMPDEST
0000004f: SWAP4
00000050: SWAP3
00000051: POP
00000052: POP
00000053: POP
00000054: JUMP
00000055: JUMPDEST
00000056: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000006b: AND
0000006c: EXTCODESIZE
0000006d: ISZERO
0000006e: ISZERO
0000006f: SWAP1
00000070: JUMP
00000071: JUMPDEST
00000072: SWAP1
00000073: JUMP
00000074: JUMPDEST
00000075: PUSH1 0x00
00000077: PUSH2 0x00b4
0000007a: PUSH32 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50
0000009b: SLOAD
0000009c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000b1: AND
000000b2: SWAP1
000000b3: JUMP
000000b4: JUMPDEST
000000b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000ca: AND
000000cb: PUSH4 0x5c60da1b
000000d0: PUSH1 0x40
000000d2: MLOAD
000000d3: DUP2
000000d4: PUSH4 0xffffffff
000000d9: AND
000000da: PUSH1 0xe0
000000dc: SHL
000000dd: DUP2
000000de: MSTORE
000000df: PUSH1 0x04
000000e1: ADD
000000e2: PUSH1 0x20
000000e4: PUSH1 0x40
000000e6: MLOAD
000000e7: DUP1
000000e8: DUP4
000000e9: SUB
000000ea: DUP2
000000eb: DUP7
000000ec: DUP1
000000ed: EXTCODESIZE
000000ee: ISZERO
000000ef: DUP1
000000f0: ISZERO
000000f1: PUSH2 0x00f9
000000f4: JUMPI
000000f5: PUSH1 0x00
000000f7: DUP1
000000f8: REVERT
000000f9: JUMPDEST
000000fa: POP
000000fb: GAS
000000fc: STATICCALL
000000fd: ISZERO
000000fe: DUP1
000000ff: ISZERO
00000100: PUSH2 0x010d
00000103: JUMPI
00000104: RETURNDATASIZE
00000105: PUSH1 0x00
00000107: DUP1
00000108: RETURNDATACOPY
00000109: RETURNDATASIZE
0000010a: PUSH1 0x00
0000010c: REVERT
0000010d: JUMPDEST
0000010e: POP
0000010f: POP
00000110: POP
00000111: POP
00000112: PUSH1 0x40
00000114: MLOAD
00000115: RETURNDATASIZE
00000116: PUSH1 0x1f
00000118: NOT
00000119: PUSH1 0x1f
0000011b: DUP3
0000011c: ADD
0000011d: AND
0000011e: DUP3
0000011f: ADD
00000120: DUP1
00000121: PUSH1 0x40
00000123: MSTORE
00000124: POP
00000125: DUP2
00000126: ADD
00000127: SWAP1
00000128: PUSH2 0x0131
0000012b: SWAP2
0000012c: SWAP1
0000012d: PUSH2 0x02da
00000130: JUMP
00000131: JUMPDEST
00000132: SWAP1
00000133: POP
00000134: SWAP1
00000135: JUMP
00000136: JUMPDEST
00000137: CALLDATASIZE
00000138: PUSH1 0x00
0000013a: DUP1
0000013b: CALLDATACOPY
0000013c: PUSH1 0x00
0000013e: DUP1
0000013f: CALLDATASIZE
00000140: PUSH1 0x00
00000142: DUP5
00000143: GAS
00000144: DELEGATECALL
00000145: RETURNDATASIZE
00000146: PUSH1 0x00
00000148: DUP1
00000149: RETURNDATACOPY
0000014a: DUP1
0000014b: DUP1
0000014c: ISZERO
0000014d: PUSH2 0x0155
00000150: JUMPI
00000151: RETURNDATASIZE
00000152: PUSH1 0x00
00000154: RETURN
00000155: JUMPDEST
00000156: RETURNDATASIZE
00000157: PUSH1 0x00
00000159: REVERT
0000015a: JUMPDEST
0000015b: PUSH1 0x60
0000015d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000172: DUP5
00000173: AND
00000174: EXTCODESIZE
00000175: PUSH2 0x0205
00000178: JUMPI
00000179: PUSH1 0x40
0000017b: MLOAD
0000017c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000019d: DUP2
0000019e: MSTORE
0000019f: PUSH1 0x20
000001a1: PUSH1 0x04
000001a3: DUP3
000001a4: ADD
000001a5: MSTORE
000001a6: PUSH1 0x26
000001a8: PUSH1 0x24
000001aa: DUP3
000001ab: ADD
000001ac: MSTORE
000001ad: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f
000001ce: PUSH1 0x44
000001d0: DUP3
000001d1: ADD
000001d2: MSTORE
000001d3: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000
000001f4: PUSH1 0x64
000001f6: DUP3
000001f7: ADD
000001f8: MSTORE
000001f9: PUSH1 0x84
000001fb: ADD
000001fc: JUMPDEST
000001fd: PUSH1 0x40
000001ff: MLOAD
00000200: DUP1
00000201: SWAP2
00000202: SUB
00000203: SWAP1
00000204: REVERT
00000205: JUMPDEST
00000206: PUSH1 0x00
00000208: DUP1
00000209: DUP6
0000020a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000021f: AND
00000220: DUP6
00000221: PUSH1 0x40
00000223: MLOAD
00000224: PUSH2 0x022d
00000227: SWAP2
00000228: SWAP1
00000229: PUSH2 0x0340
0000022c: JUMP
0000022d: JUMPDEST
0000022e: PUSH1 0x00
00000230: PUSH1 0x40
00000232: MLOAD
00000233: DUP1
00000234: DUP4
00000235: SUB
00000236: DUP2
00000237: DUP6
00000238: GAS
00000239: DELEGATECALL
0000023a: SWAP2
0000023b: POP
0000023c: POP
0000023d: RETURNDATASIZE
0000023e: DUP1
0000023f: PUSH1 0x00
00000241: DUP2
00000242: EQ
00000243: PUSH2 0x0268
00000246: JUMPI
00000247: PUSH1 0x40
00000249: MLOAD
0000024a: SWAP2
0000024b: POP
0000024c: PUSH1 0x1f
0000024e: NOT
0000024f: PUSH1 0x3f
00000251: RETURNDATASIZE
00000252: ADD
00000253: AND
00000254: DUP3
00000255: ADD
00000256: PUSH1 0x40
00000258: MSTORE
00000259: RETURNDATASIZE
0000025a: DUP3
0000025b: MSTORE
0000025c: RETURNDATASIZE
0000025d: PUSH1 0x00
0000025f: PUSH1 0x20
00000261: DUP5
00000262: ADD
00000263: RETURNDATACOPY
00000264: PUSH2 0x026d
00000267: JUMP
00000268: JUMPDEST
00000269: PUSH1 0x60
0000026b: SWAP2
0000026c: POP
0000026d: JUMPDEST
0000026e: POP
0000026f: SWAP2
00000270: POP
00000271: SWAP2
00000272: POP
00000273: PUSH2 0x027d
00000276: DUP3
00000277: DUP3
00000278: DUP7
00000279: PUSH2 0x0287
0000027c: JUMP
0000027d: JUMPDEST
0000027e: SWAP7
0000027f: SWAP6
00000280: POP
00000281: POP
00000282: POP
00000283: POP
00000284: POP
00000285: POP
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH1 0x60
0000028a: DUP4
0000028b: ISZERO
0000028c: PUSH2 0x0296
0000028f: JUMPI
00000290: POP
00000291: DUP2
00000292: PUSH2 0x004e
00000295: JUMP
00000296: JUMPDEST
00000297: DUP3
00000298: MLOAD
00000299: ISZERO
0000029a: PUSH2 0x02a6
0000029d: JUMPI
0000029e: DUP3
0000029f: MLOAD
000002a0: DUP1
000002a1: DUP5
000002a2: PUSH1 0x20
000002a4: ADD
000002a5: REVERT
000002a6: JUMPDEST
000002a7: DUP2
000002a8: PUSH1 0x40
000002aa: MLOAD
000002ab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000002cc: DUP2
000002cd: MSTORE
000002ce: PUSH1 0x04
000002d0: ADD
000002d1: PUSH2 0x01fc
000002d4: SWAP2
000002d5: SWAP1
000002d6: PUSH2 0x035c
000002d9: JUMP
000002da: JUMPDEST
000002db: PUSH1 0x00
000002dd: PUSH1 0x20
000002df: DUP3
000002e0: DUP5
000002e1: SUB
000002e2: SLT
000002e3: ISZERO
000002e4: PUSH2 0x02ec
000002e7: JUMPI
000002e8: PUSH1 0x00
000002ea: DUP1
000002eb: REVERT
000002ec: JUMPDEST
000002ed: DUP2
000002ee: MLOAD
000002ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000304: DUP2
00000305: AND
00000306: DUP2
00000307: EQ
00000308: PUSH2 0x004e
0000030b: JUMPI
0000030c: PUSH1 0x00
0000030e: DUP1
0000030f: REVERT
00000310: JUMPDEST
00000311: PUSH1 0x00
00000313: JUMPDEST
00000314: DUP4
00000315: DUP2
00000316: LT
00000317: ISZERO
00000318: PUSH2 0x032b
0000031b: JUMPI
0000031c: DUP2
0000031d: DUP2
0000031e: ADD
0000031f: MLOAD
00000320: DUP4
00000321: DUP3
00000322: ADD
00000323: MSTORE
00000324: PUSH1 0x20
00000326: ADD
00000327: PUSH2 0x0313
0000032a: JUMP
0000032b: JUMPDEST
0000032c: DUP4
0000032d: DUP2
0000032e: GT
0000032f: ISZERO
00000330: PUSH2 0x033a
00000333: JUMPI
00000334: PUSH1 0x00
00000336: DUP5
00000337: DUP5
00000338: ADD
00000339: MSTORE
0000033a: JUMPDEST
0000033b: POP
0000033c: POP
0000033d: POP
0000033e: POP
0000033f: JUMP
00000340: JUMPDEST
00000341: PUSH1 0x00
00000343: DUP3
00000344: MLOAD
00000345: PUSH2 0x0352
00000348: DUP2
00000349: DUP5
0000034a: PUSH1 0x20
0000034c: DUP8
0000034d: ADD
0000034e: PUSH2 0x0310
00000351: JUMP
00000352: JUMPDEST
00000353: SWAP2
00000354: SWAP1
00000355: SWAP2
00000356: ADD
00000357: SWAP3
00000358: SWAP2
00000359: POP
0000035a: POP
0000035b: JUMP
0000035c: JUMPDEST
0000035d: PUSH1 0x20
0000035f: DUP2
00000360: MSTORE
00000361: PUSH1 0x00
00000363: DUP3
00000364: MLOAD
00000365: DUP1
00000366: PUSH1 0x20
00000368: DUP5
00000369: ADD
0000036a: MSTORE
0000036b: PUSH2 0x037b
0000036e: DUP2
0000036f: PUSH1 0x40
00000371: DUP6
00000372: ADD
00000373: PUSH1 0x20
00000375: DUP8
00000376: ADD
00000377: PUSH2 0x0310
0000037a: JUMP
0000037b: JUMPDEST
0000037c: PUSH1 0x1f
0000037e: ADD
0000037f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000003a0: AND
000003a1: SWAP2
000003a2: SWAP1
000003a3: SWAP2
000003a4: ADD
000003a5: PUSH1 0x40
000003a7: ADD
000003a8: SWAP3
000003a9: SWAP2
000003aa: POP
000003ab: POP
000003ac: JUMP
000003ad: INVALID
000003ae: COINBASE
000003af: PUSH5 0x6472657373
000003b5: GASPRICE
000003b6: KECCAK256
000003b7: PUSH13 0x6f772d6c6576656c2064656c65
000003c5: PUSH8 0x6174652063616c6c
000003ce: KECCAK256
000003cf: PUSH7 0x61696c6564a264
000003d7: PUSH10 0x70667358221220be28ef
000003e2: UNKNOWN(0x22)
000003e3: RETURNDATACOPY
000003e4: UNKNOWN(0xEF)
000003e5: PUSH5 0xe5fa547e5d
000003eb: TLOAD
000003ec: SWAP13
000003ed: UNKNOWN(0xD8)
000003ee: UNKNOWN(0xEA)
000003ef: UNKNOWN(0xBE)
000003f0: DUP3
000003f1: TLOAD
000003f2: UNKNOWN(0xDD)
000003f3: UNKNOWN(0xA9)
000003f4: UNKNOWN(0xCC)
000003f5: UNKNOWN(0xB4)
000003f6: GT
000003f7: DUP4
000003f8: PUSH1 0xc3
000003fa: INVALID
000003fb: SWAP10
000003fc: UNKNOWN(0x29)
000003fd: MSTORE
000003fe: EXTCODESIZE
000003ff: PUSH5 0x736f6c6343
00000405: STOP
00000406: ADDMOD
00000407: MULMOD
00000408: STOP
00000409: CALLER

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: 0xd2810884e86831d352981c225309dcc78b3083e0afc290138780af50164c8a7d
call_targets: 0x2c3e854f6a2acf403bc9c9eeb3ab0c2519d1932b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd2810884e86831d352981c225309dcc78b3083e0afc290138780af50164c8a7d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2c3e854f6a2acf403bc9c9eeb3ab0c2519d1932b"
    ],
    "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": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 324,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 569,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 2
}