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

Analysis Run

019b3836-3a8f-7009-8aae-7c9c519e1ae8

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
4249 artifact.fetch complete 1 / 3 3 months ago
4250 tool.cast_disasm complete 1 / 3 3 months ago
47524 analysis.bundle complete 1 / 3 1 week ago
47525 capability.graph complete 1 / 3 1 week ago
47526 detector.run complete 1 / 3 1 week ago
47527 validation.fork complete 1 / 3 1 week 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
408
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0035
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0xa4dff0a2
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x0040
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0xa9814d14
00000025: EQ
00000026: PUSH2 0x00ed
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0xe97dcb62
00000030: EQ
00000031: PUSH2 0x014b
00000034: JUMPI
00000035: JUMPDEST
00000036: PUSH2 0x01df
00000039: PUSH2 0x01e1
0000003c: PUSH2 0x014f
0000003f: JUMP
00000040: JUMPDEST
00000041: PUSH2 0x01df
00000044: PUSH1 0x40
00000046: DUP1
00000047: MLOAD
00000048: DUP1
00000049: DUP3
0000004a: ADD
0000004b: SWAP1
0000004c: SWAP2
0000004d: MSTORE
0000004e: PUSH1 0x06
00000050: DUP1
00000051: DUP3
00000052: MSTORE
00000053: PUSH32 0x7a7a7a7a7a7a0000000000000000000000000000000000000000000000000000
00000074: PUSH1 0x20
00000076: SWAP3
00000077: DUP4
00000078: ADD
00000079: SWAP1
0000007a: DUP2
0000007b: MSTORE
0000007c: PUSH1 0x00
0000007e: DUP1
0000007f: SLOAD
00000080: DUP2
00000081: DUP1
00000082: MSTORE
00000083: SWAP1
00000084: SWAP4
00000085: PUSH1 0x02
00000087: PUSH1 0x01
00000089: DUP4
0000008a: AND
0000008b: ISZERO
0000008c: PUSH2 0x0100
0000008f: MUL
00000090: PUSH1 0x00
00000092: NOT
00000093: ADD
00000094: SWAP1
00000095: SWAP3
00000096: AND
00000097: SWAP2
00000098: SWAP1
00000099: SWAP2
0000009a: DIV
0000009b: PUSH1 0x1f
0000009d: ADD
0000009e: DIV
0000009f: PUSH32 0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563
000000c0: SWAP1
000000c1: DUP2
000000c2: ADD
000000c3: SWAP3
000000c4: SWAP2
000000c5: DUP1
000000c6: MLOAD
000000c7: PUSH1 0xff
000000c9: NOT
000000ca: AND
000000cb: DUP4
000000cc: DUP1
000000cd: ADD
000000ce: OR
000000cf: DUP6
000000d0: SSTORE
000000d1: JUMPDEST
000000d2: POP
000000d3: PUSH2 0x0284
000000d6: SWAP3
000000d7: SWAP2
000000d8: POP
000000d9: JUMPDEST
000000da: DUP1
000000db: DUP3
000000dc: GT
000000dd: ISZERO
000000de: PUSH2 0x0288
000000e1: JUMPI
000000e2: PUSH1 0x00
000000e4: DUP2
000000e5: SSTORE
000000e6: PUSH1 0x01
000000e8: ADD
000000e9: PUSH2 0x00d9
000000ec: JUMP
000000ed: JUMPDEST
000000ee: PUSH1 0x40
000000f0: DUP1
000000f1: MLOAD
000000f2: PUSH1 0x00
000000f4: DUP1
000000f5: SLOAD
000000f6: PUSH1 0x20
000000f8: PUSH1 0x02
000000fa: PUSH1 0x01
000000fc: DUP4
000000fd: AND
000000fe: ISZERO
000000ff: PUSH2 0x0100
00000102: MUL
00000103: PUSH1 0x00
00000105: NOT
00000106: ADD
00000107: SWAP1
00000108: SWAP3
00000109: AND
0000010a: SWAP2
0000010b: SWAP1
0000010c: SWAP2
0000010d: DIV
0000010e: PUSH1 0x1f
00000110: DUP2
00000111: ADD
00000112: DUP3
00000113: SWAP1
00000114: DIV
00000115: DUP3
00000116: MUL
00000117: DUP5
00000118: ADD
00000119: DUP3
0000011a: ADD
0000011b: SWAP1
0000011c: SWAP5
0000011d: MSTORE
0000011e: DUP4
0000011f: DUP4
00000120: MSTORE
00000121: PUSH2 0x01e3
00000124: SWAP4
00000125: SWAP1
00000126: DUP4
00000127: ADD
00000128: DUP3
00000129: DUP3
0000012a: DUP1
0000012b: ISZERO
0000012c: PUSH2 0x027c
0000012f: JUMPI
00000130: DUP1
00000131: PUSH1 0x1f
00000133: LT
00000134: PUSH2 0x0251
00000137: JUMPI
00000138: PUSH2 0x0100
0000013b: DUP1
0000013c: DUP4
0000013d: SLOAD
0000013e: DIV
0000013f: MUL
00000140: DUP4
00000141: MSTORE
00000142: SWAP2
00000143: PUSH1 0x20
00000145: ADD
00000146: SWAP2
00000147: PUSH2 0x027c
0000014a: JUMP
0000014b: JUMPDEST
0000014c: PUSH2 0x01df
0000014f: JUMPDEST
00000150: PUSH1 0x40
00000152: DUP1
00000153: MLOAD
00000154: DUP1
00000155: DUP3
00000156: ADD
00000157: SWAP1
00000158: SWAP2
00000159: MSTORE
0000015a: PUSH1 0x0b
0000015c: DUP1
0000015d: DUP3
0000015e: MSTORE
0000015f: PUSH32 0x656e746572656421212121000000000000000000000000000000000000000000
00000180: PUSH1 0x20
00000182: SWAP3
00000183: DUP4
00000184: ADD
00000185: SWAP1
00000186: DUP2
00000187: MSTORE
00000188: PUSH1 0x00
0000018a: DUP1
0000018b: SLOAD
0000018c: DUP2
0000018d: DUP1
0000018e: MSTORE
0000018f: DUP3
00000190: MLOAD
00000191: PUSH1 0xff
00000193: NOT
00000194: AND
00000195: PUSH1 0x16
00000197: OR
00000198: DUP3
00000199: SSTORE
0000019a: SWAP1
0000019b: SWAP4
0000019c: PUSH32 0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563
000001bd: PUSH1 0x02
000001bf: PUSH1 0x01
000001c1: DUP5
000001c2: AND
000001c3: ISZERO
000001c4: PUSH2 0x0100
000001c7: MUL
000001c8: PUSH1 0x00
000001ca: NOT
000001cb: ADD
000001cc: SWAP1
000001cd: SWAP4
000001ce: AND
000001cf: SWAP3
000001d0: SWAP1
000001d1: SWAP3
000001d2: DIV
000001d3: PUSH1 0x1f
000001d5: ADD
000001d6: DIV
000001d7: DUP2
000001d8: ADD
000001d9: SWAP3
000001da: SWAP2
000001db: PUSH2 0x00d1
000001de: JUMP
000001df: JUMPDEST
000001e0: STOP
000001e1: JUMPDEST
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH1 0x40
000001e6: MLOAD
000001e7: DUP1
000001e8: DUP1
000001e9: PUSH1 0x20
000001eb: ADD
000001ec: DUP3
000001ed: DUP2
000001ee: SUB
000001ef: DUP3
000001f0: MSTORE
000001f1: DUP4
000001f2: DUP2
000001f3: DUP2
000001f4: MLOAD
000001f5: DUP2
000001f6: MSTORE
000001f7: PUSH1 0x20
000001f9: ADD
000001fa: SWAP2
000001fb: POP
000001fc: DUP1
000001fd: MLOAD
000001fe: SWAP1
000001ff: PUSH1 0x20
00000201: ADD
00000202: SWAP1
00000203: DUP1
00000204: DUP4
00000205: DUP4
00000206: DUP3
00000207: SWAP1
00000208: PUSH1 0x00
0000020a: PUSH1 0x04
0000020c: PUSH1 0x20
0000020e: DUP5
0000020f: PUSH1 0x1f
00000211: ADD
00000212: DIV
00000213: PUSH1 0x0f
00000215: MUL
00000216: PUSH1 0x03
00000218: ADD
00000219: CALL
0000021a: POP
0000021b: SWAP1
0000021c: POP
0000021d: SWAP1
0000021e: DUP2
0000021f: ADD
00000220: SWAP1
00000221: PUSH1 0x1f
00000223: AND
00000224: DUP1
00000225: ISZERO
00000226: PUSH2 0x0243
00000229: JUMPI
0000022a: DUP1
0000022b: DUP3
0000022c: SUB
0000022d: DUP1
0000022e: MLOAD
0000022f: PUSH1 0x01
00000231: DUP4
00000232: PUSH1 0x20
00000234: SUB
00000235: PUSH2 0x0100
00000238: EXP
00000239: SUB
0000023a: NOT
0000023b: AND
0000023c: DUP2
0000023d: MSTORE
0000023e: PUSH1 0x20
00000240: ADD
00000241: SWAP2
00000242: POP
00000243: JUMPDEST
00000244: POP
00000245: SWAP3
00000246: POP
00000247: POP
00000248: POP
00000249: PUSH1 0x40
0000024b: MLOAD
0000024c: DUP1
0000024d: SWAP2
0000024e: SUB
0000024f: SWAP1
00000250: RETURN
00000251: JUMPDEST
00000252: DUP3
00000253: ADD
00000254: SWAP2
00000255: SWAP1
00000256: PUSH1 0x00
00000258: MSTORE
00000259: PUSH1 0x20
0000025b: PUSH1 0x00
0000025d: KECCAK256
0000025e: SWAP1
0000025f: JUMPDEST
00000260: DUP2
00000261: SLOAD
00000262: DUP2
00000263: MSTORE
00000264: SWAP1
00000265: PUSH1 0x01
00000267: ADD
00000268: SWAP1
00000269: PUSH1 0x20
0000026b: ADD
0000026c: DUP1
0000026d: DUP4
0000026e: GT
0000026f: PUSH2 0x025f
00000272: JUMPI
00000273: DUP3
00000274: SWAP1
00000275: SUB
00000276: PUSH1 0x1f
00000278: AND
00000279: DUP3
0000027a: ADD
0000027b: SWAP2
0000027c: JUMPDEST
0000027d: POP
0000027e: POP
0000027f: POP
00000280: POP
00000281: POP
00000282: DUP2
00000283: JUMP
00000284: JUMPDEST
00000285: POP
00000286: POP
00000287: JUMP
00000288: JUMPDEST
00000289: POP
0000028a: SWAP1
0000028b: 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: 0x9b8fd955d9cbe611b7dbb6d0afa96fdae8f838bf829ef40d10ae7b59727a316c
call_targets: 0x2d6aeb544691ec4e4e945a2a374eb48ce06f6547
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x9b8fd955d9cbe611b7dbb6d0afa96fdae8f838bf829ef40d10ae7b59727a316c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2d6aeb544691ec4e4e945a2a374eb48ce06f6547"
    ],
    "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": "0xa4dff0a2",
            "selector": "0xa4dff0a2",
            "calldata_variants": [
                "0xa4dff0a2",
                "0xa4dff0a20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9814d14",
            "selector": "0xa9814d14",
            "calldata_variants": [
                "0xa9814d14",
                "0xa9814d140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe97dcb62",
            "selector": "0xe97dcb62",
            "calldata_variants": [
                "0xe97dcb62",
                "0xe97dcb620000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 537,
            "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: 0x9b8fd955d9cbe611b7dbb6d0afa96fdae8f838bf829ef40d10ae7b59727a316c
call_targets: 0x2d6aeb544691ec4e4e945a2a374eb48ce06f6547
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x9b8fd955d9cbe611b7dbb6d0afa96fdae8f838bf829ef40d10ae7b59727a316c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2d6aeb544691ec4e4e945a2a374eb48ce06f6547"
    ],
    "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": "0xa4dff0a2",
            "selector": "0xa4dff0a2",
            "calldata_variants": [
                "0xa4dff0a2",
                "0xa4dff0a20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9814d14",
            "selector": "0xa9814d14",
            "calldata_variants": [
                "0xa9814d14",
                "0xa9814d140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe97dcb62",
            "selector": "0xe97dcb62",
            "calldata_variants": [
                "0xe97dcb62",
                "0xe97dcb620000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 537,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}