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

Analysis Run

019b3836-2de7-70ef-80db-4b565b5920c7

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
SELFDESTRUCT 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
2177 artifact.fetch complete 1 / 3 4 months ago
2178 tool.cast_disasm complete 1 / 3 4 months ago
96414 analysis.bundle complete 1 / 3 2 weeks ago
96415 capability.graph complete 1 / 3 2 weeks ago
96416 detector.run complete 1 / 3 2 weeks ago
96417 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
1
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
0
Total opcodes
540
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x00
00000007: CALLDATALOAD
00000008: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000026: SWAP1
00000027: DIV
00000028: DUP1
00000029: PUSH4 0x3c6c2914
0000002e: EQ
0000002f: PUSH2 0x0065
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0x41c0e1b5
00000039: EQ
0000003a: PUSH2 0x007d
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0x8da5cb5b
00000044: EQ
00000045: PUSH2 0x008c
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xabc00bb4
0000004f: EQ
00000050: PUSH2 0x00c5
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xdc0d3dff
0000005a: EQ
0000005b: PUSH2 0x00f1
0000005e: JUMPI
0000005f: PUSH2 0x0063
00000062: JUMP
00000063: JUMPDEST
00000064: STOP
00000065: JUMPDEST
00000066: PUSH2 0x007b
00000069: PUSH1 0x04
0000006b: DUP1
0000006c: DUP1
0000006d: CALLDATALOAD
0000006e: SWAP1
0000006f: PUSH1 0x20
00000071: ADD
00000072: SWAP1
00000073: SWAP2
00000074: SWAP1
00000075: POP
00000076: POP
00000077: PUSH2 0x0141
0000007a: JUMP
0000007b: JUMPDEST
0000007c: STOP
0000007d: JUMPDEST
0000007e: PUSH2 0x008a
00000081: PUSH1 0x04
00000083: DUP1
00000084: POP
00000085: POP
00000086: PUSH2 0x02ab
00000089: JUMP
0000008a: JUMPDEST
0000008b: STOP
0000008c: JUMPDEST
0000008d: PUSH2 0x0099
00000090: PUSH1 0x04
00000092: DUP1
00000093: POP
00000094: POP
00000095: PUSH2 0x033f
00000098: JUMP
00000099: JUMPDEST
0000009a: PUSH1 0x40
0000009c: MLOAD
0000009d: DUP1
0000009e: DUP3
0000009f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000b4: AND
000000b5: DUP2
000000b6: MSTORE
000000b7: PUSH1 0x20
000000b9: ADD
000000ba: SWAP2
000000bb: POP
000000bc: POP
000000bd: PUSH1 0x40
000000bf: MLOAD
000000c0: DUP1
000000c1: SWAP2
000000c2: SUB
000000c3: SWAP1
000000c4: RETURN
000000c5: JUMPDEST
000000c6: PUSH2 0x00db
000000c9: PUSH1 0x04
000000cb: DUP1
000000cc: DUP1
000000cd: CALLDATALOAD
000000ce: SWAP1
000000cf: PUSH1 0x20
000000d1: ADD
000000d2: SWAP1
000000d3: SWAP2
000000d4: SWAP1
000000d5: POP
000000d6: POP
000000d7: PUSH2 0x0267
000000da: JUMP
000000db: JUMPDEST
000000dc: PUSH1 0x40
000000de: MLOAD
000000df: DUP1
000000e0: DUP3
000000e1: DUP2
000000e2: MSTORE
000000e3: PUSH1 0x20
000000e5: ADD
000000e6: SWAP2
000000e7: POP
000000e8: POP
000000e9: PUSH1 0x40
000000eb: MLOAD
000000ec: DUP1
000000ed: SWAP2
000000ee: SUB
000000ef: SWAP1
000000f0: RETURN
000000f1: JUMPDEST
000000f2: PUSH2 0x0107
000000f5: PUSH1 0x04
000000f7: DUP1
000000f8: DUP1
000000f9: CALLDATALOAD
000000fa: SWAP1
000000fb: PUSH1 0x20
000000fd: ADD
000000fe: SWAP1
000000ff: SWAP2
00000100: SWAP1
00000101: POP
00000102: POP
00000103: PUSH2 0x0365
00000106: JUMP
00000107: JUMPDEST
00000108: PUSH1 0x40
0000010a: MLOAD
0000010b: DUP1
0000010c: DUP5
0000010d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000122: AND
00000123: DUP2
00000124: MSTORE
00000125: PUSH1 0x20
00000127: ADD
00000128: DUP4
00000129: DUP2
0000012a: MSTORE
0000012b: PUSH1 0x20
0000012d: ADD
0000012e: DUP3
0000012f: DUP2
00000130: MSTORE
00000131: PUSH1 0x20
00000133: ADD
00000134: SWAP4
00000135: POP
00000136: POP
00000137: POP
00000138: POP
00000139: PUSH1 0x40
0000013b: MLOAD
0000013c: DUP1
0000013d: SWAP2
0000013e: SUB
0000013f: SWAP1
00000140: RETURN
00000141: JUMPDEST
00000142: PUSH1 0x00
00000144: PUSH1 0x00
00000146: CALLVALUE
00000147: SWAP2
00000148: POP
00000149: DUP3
0000014a: SWAP1
0000014b: POP
0000014c: PUSH1 0x01
0000014e: PUSH1 0x00
00000150: POP
00000151: DUP1
00000152: SLOAD
00000153: DUP1
00000154: PUSH1 0x01
00000156: ADD
00000157: DUP3
00000158: DUP2
00000159: DUP2
0000015a: SLOAD
0000015b: DUP2
0000015c: DUP4
0000015d: SSTORE
0000015e: DUP2
0000015f: DUP2
00000160: ISZERO
00000161: GT
00000162: PUSH2 0x01d9
00000165: JUMPI
00000166: PUSH1 0x03
00000168: MUL
00000169: DUP2
0000016a: PUSH1 0x03
0000016c: MUL
0000016d: DUP4
0000016e: PUSH1 0x00
00000170: MSTORE
00000171: PUSH1 0x20
00000173: PUSH1 0x00
00000175: KECCAK256
00000176: SWAP2
00000177: DUP3
00000178: ADD
00000179: SWAP2
0000017a: ADD
0000017b: PUSH2 0x01d8
0000017e: SWAP2
0000017f: SWAP1
00000180: PUSH2 0x0184
00000183: JUMP
00000184: JUMPDEST
00000185: DUP1
00000186: DUP3
00000187: GT
00000188: ISZERO
00000189: PUSH2 0x01d4
0000018c: JUMPI
0000018d: PUSH1 0x00
0000018f: PUSH1 0x00
00000191: DUP3
00000192: ADD
00000193: PUSH1 0x00
00000195: PUSH2 0x0100
00000198: EXP
00000199: DUP2
0000019a: SLOAD
0000019b: SWAP1
0000019c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b1: MUL
000001b2: NOT
000001b3: AND
000001b4: SWAP1
000001b5: SSTORE
000001b6: PUSH1 0x01
000001b8: DUP3
000001b9: ADD
000001ba: PUSH1 0x00
000001bc: POP
000001bd: PUSH1 0x00
000001bf: SWAP1
000001c0: SSTORE
000001c1: PUSH1 0x02
000001c3: DUP3
000001c4: ADD
000001c5: PUSH1 0x00
000001c7: POP
000001c8: PUSH1 0x00
000001ca: SWAP1
000001cb: SSTORE
000001cc: POP
000001cd: PUSH1 0x01
000001cf: ADD
000001d0: PUSH2 0x0184
000001d3: JUMP
000001d4: JUMPDEST
000001d5: POP
000001d6: SWAP1
000001d7: JUMP
000001d8: JUMPDEST
000001d9: JUMPDEST
000001da: POP
000001db: POP
000001dc: POP
000001dd: SWAP2
000001de: SWAP1
000001df: SWAP1
000001e0: PUSH1 0x00
000001e2: MSTORE
000001e3: PUSH1 0x20
000001e5: PUSH1 0x00
000001e7: KECCAK256
000001e8: SWAP1
000001e9: PUSH1 0x03
000001eb: MUL
000001ec: ADD
000001ed: PUSH1 0x00
000001ef: JUMPDEST
000001f0: PUSH1 0x60
000001f2: PUSH1 0x40
000001f4: MLOAD
000001f5: SWAP1
000001f6: DUP2
000001f7: ADD
000001f8: PUSH1 0x40
000001fa: MSTORE
000001fb: DUP1
000001fc: CALLER
000001fd: DUP2
000001fe: MSTORE
000001ff: PUSH1 0x20
00000201: ADD
00000202: DUP7
00000203: DUP2
00000204: MSTORE
00000205: PUSH1 0x20
00000207: ADD
00000208: DUP6
00000209: DUP2
0000020a: MSTORE
0000020b: PUSH1 0x20
0000020d: ADD
0000020e: POP
0000020f: SWAP1
00000210: SWAP2
00000211: SWAP1
00000212: SWAP2
00000213: POP
00000214: PUSH1 0x00
00000216: DUP3
00000217: ADD
00000218: MLOAD
00000219: DUP2
0000021a: PUSH1 0x00
0000021c: ADD
0000021d: PUSH1 0x00
0000021f: PUSH2 0x0100
00000222: EXP
00000223: DUP2
00000224: SLOAD
00000225: DUP2
00000226: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000023b: MUL
0000023c: NOT
0000023d: AND
0000023e: SWAP1
0000023f: DUP4
00000240: MUL
00000241: OR
00000242: SWAP1
00000243: SSTORE
00000244: POP
00000245: PUSH1 0x20
00000247: DUP3
00000248: ADD
00000249: MLOAD
0000024a: DUP2
0000024b: PUSH1 0x01
0000024d: ADD
0000024e: PUSH1 0x00
00000250: POP
00000251: SSTORE
00000252: PUSH1 0x40
00000254: DUP3
00000255: ADD
00000256: MLOAD
00000257: DUP2
00000258: PUSH1 0x02
0000025a: ADD
0000025b: PUSH1 0x00
0000025d: POP
0000025e: SSTORE
0000025f: POP
00000260: POP
00000261: POP
00000262: JUMPDEST
00000263: POP
00000264: POP
00000265: POP
00000266: JUMP
00000267: JUMPDEST
00000268: PUSH1 0x00
0000026a: PUSH1 0x00
0000026c: PUSH1 0x01
0000026e: PUSH1 0x00
00000270: POP
00000271: DUP1
00000272: SLOAD
00000273: SWAP1
00000274: POP
00000275: SWAP1
00000276: POP
00000277: PUSH1 0x01
00000279: PUSH1 0x00
0000027b: POP
0000027c: DUP4
0000027d: DUP2
0000027e: SLOAD
0000027f: DUP2
00000280: LT
00000281: ISZERO
00000282: PUSH2 0x0002
00000285: JUMPI
00000286: SWAP1
00000287: PUSH1 0x00
00000289: MSTORE
0000028a: PUSH1 0x20
0000028c: PUSH1 0x00
0000028e: KECCAK256
0000028f: SWAP1
00000290: PUSH1 0x03
00000292: MUL
00000293: ADD
00000294: PUSH1 0x00
00000296: JUMPDEST
00000297: POP
00000298: PUSH1 0x02
0000029a: ADD
0000029b: PUSH1 0x00
0000029d: POP
0000029e: SLOAD
0000029f: SWAP2
000002a0: POP
000002a1: PUSH2 0x02a5
000002a4: JUMP
000002a5: JUMPDEST
000002a6: POP
000002a7: SWAP2
000002a8: SWAP1
000002a9: POP
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH1 0x00
000002ae: PUSH1 0x00
000002b0: SWAP1
000002b1: SLOAD
000002b2: SWAP1
000002b3: PUSH2 0x0100
000002b6: EXP
000002b7: SWAP1
000002b8: DIV
000002b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ce: AND
000002cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002e4: AND
000002e5: CALLER
000002e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002fb: AND
000002fc: EQ
000002fd: ISZERO
000002fe: PUSH2 0x033c
00000301: JUMPI
00000302: PUSH1 0x00
00000304: PUSH1 0x00
00000306: SWAP1
00000307: SLOAD
00000308: SWAP1
00000309: PUSH2 0x0100
0000030c: EXP
0000030d: SWAP1
0000030e: DIV
0000030f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000324: AND
00000325: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000033a: AND
0000033b: SELFDESTRUCT
0000033c: JUMPDEST
0000033d: JUMPDEST
0000033e: JUMP
0000033f: JUMPDEST
00000340: PUSH1 0x00
00000342: PUSH1 0x00
00000344: SWAP1
00000345: SLOAD
00000346: SWAP1
00000347: PUSH2 0x0100
0000034a: EXP
0000034b: SWAP1
0000034c: DIV
0000034d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000362: AND
00000363: DUP2
00000364: JUMP
00000365: JUMPDEST
00000366: PUSH1 0x01
00000368: PUSH1 0x00
0000036a: POP
0000036b: DUP2
0000036c: DUP2
0000036d: SLOAD
0000036e: DUP2
0000036f: LT
00000370: ISZERO
00000371: PUSH2 0x0002
00000374: JUMPI
00000375: SWAP1
00000376: PUSH1 0x00
00000378: MSTORE
00000379: PUSH1 0x20
0000037b: PUSH1 0x00
0000037d: KECCAK256
0000037e: SWAP1
0000037f: PUSH1 0x03
00000381: MUL
00000382: ADD
00000383: PUSH1 0x00
00000385: JUMPDEST
00000386: SWAP2
00000387: POP
00000388: SWAP1
00000389: POP
0000038a: DUP1
0000038b: PUSH1 0x00
0000038d: ADD
0000038e: PUSH1 0x00
00000390: SWAP1
00000391: SLOAD
00000392: SWAP1
00000393: PUSH2 0x0100
00000396: EXP
00000397: SWAP1
00000398: DIV
00000399: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003ae: AND
000003af: SWAP1
000003b0: DUP1
000003b1: PUSH1 0x01
000003b3: ADD
000003b4: PUSH1 0x00
000003b6: POP
000003b7: SLOAD
000003b8: SWAP1
000003b9: DUP1
000003ba: PUSH1 0x02
000003bc: ADD
000003bd: PUSH1 0x00
000003bf: POP
000003c0: SLOAD
000003c1: SWAP1
000003c2: POP
000003c3: DUP4
000003c4: 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 SELFDESTRUCT reachable 45 no no
view
trace_id: 0x1f20199672f7ccc0b10cb60074d67befffa87a47f8cd48d8d3112bee126fb35b
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 10,
    "trace_id": "0x1f20199672f7ccc0b10cb60074d67befffa87a47f8cd48d8d3112bee126fb35b",
    "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": "0x3c6c2914",
            "selector": "0x3c6c2914",
            "calldata_variants": [
                "0x3c6c2914",
                "0x3c6c29140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabc00bb4",
            "selector": "0xabc00bb4",
            "calldata_variants": [
                "0xabc00bb4",
                "0xabc00bb40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc0d3dff",
            "selector": "0xdc0d3dff",
            "calldata_variants": [
                "0xdc0d3dff",
                "0xdc0d3dff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 741,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "selfdestruct_count": 1
}