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

Analysis Run

019b3836-2599-712d-9284-7750d4f6ed66

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
799 artifact.fetch complete 1 / 3 3 months ago
800 tool.cast_disasm complete 1 / 3 3 months ago
44227 analysis.bundle complete 1 / 3 2 weeks ago
44228 capability.graph complete 1 / 3 2 weeks ago
44229 detector.run complete 1 / 3 2 weeks ago
44230 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
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
0
Total opcodes
637
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0053
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x0fb5a6b4
00000034: EQ
00000035: PUSH2 0x0064
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x3ccfd60b
0000003f: EQ
00000040: PUSH2 0x0087
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x5e5c06e2
0000004a: EQ
0000004b: PUSH2 0x00aa
0000004e: JUMPI
0000004f: PUSH2 0x0053
00000052: JUMP
00000053: JUMPDEST
00000054: PUSH2 0x0062
00000057: JUMPDEST
00000058: PUSH2 0x005f
0000005b: PUSH2 0x0113
0000005e: JUMP
0000005f: JUMPDEST
00000060: JUMPDEST
00000061: JUMP
00000062: JUMPDEST
00000063: STOP
00000064: JUMPDEST
00000065: PUSH2 0x0071
00000068: PUSH1 0x04
0000006a: DUP1
0000006b: POP
0000006c: POP
0000006d: PUSH2 0x010a
00000070: JUMP
00000071: JUMPDEST
00000072: PUSH1 0x40
00000074: MLOAD
00000075: DUP1
00000076: DUP3
00000077: DUP2
00000078: MSTORE
00000079: PUSH1 0x20
0000007b: ADD
0000007c: SWAP2
0000007d: POP
0000007e: POP
0000007f: PUSH1 0x40
00000081: MLOAD
00000082: DUP1
00000083: SWAP2
00000084: SUB
00000085: SWAP1
00000086: RETURN
00000087: JUMPDEST
00000088: PUSH2 0x0094
0000008b: PUSH1 0x04
0000008d: DUP1
0000008e: POP
0000008f: POP
00000090: PUSH2 0x0280
00000093: JUMP
00000094: JUMPDEST
00000095: PUSH1 0x40
00000097: MLOAD
00000098: DUP1
00000099: DUP3
0000009a: DUP2
0000009b: MSTORE
0000009c: PUSH1 0x20
0000009e: ADD
0000009f: SWAP2
000000a0: POP
000000a1: POP
000000a2: PUSH1 0x40
000000a4: MLOAD
000000a5: DUP1
000000a6: SWAP2
000000a7: SUB
000000a8: SWAP1
000000a9: RETURN
000000aa: JUMPDEST
000000ab: PUSH2 0x00c0
000000ae: PUSH1 0x04
000000b0: DUP1
000000b1: DUP1
000000b2: CALLDATALOAD
000000b3: SWAP1
000000b4: PUSH1 0x20
000000b6: ADD
000000b7: SWAP1
000000b8: SWAP2
000000b9: SWAP1
000000ba: POP
000000bb: POP
000000bc: PUSH2 0x00dd
000000bf: JUMP
000000c0: JUMPDEST
000000c1: PUSH1 0x40
000000c3: MLOAD
000000c4: DUP1
000000c5: DUP4
000000c6: DUP2
000000c7: MSTORE
000000c8: PUSH1 0x20
000000ca: ADD
000000cb: DUP3
000000cc: DUP2
000000cd: MSTORE
000000ce: PUSH1 0x20
000000d0: ADD
000000d1: SWAP3
000000d2: POP
000000d3: POP
000000d4: POP
000000d5: PUSH1 0x40
000000d7: MLOAD
000000d8: DUP1
000000d9: SWAP2
000000da: SUB
000000db: SWAP1
000000dc: RETURN
000000dd: JUMPDEST
000000de: PUSH1 0x00
000000e0: PUSH1 0x00
000000e2: POP
000000e3: PUSH1 0x20
000000e5: MSTORE
000000e6: DUP1
000000e7: PUSH1 0x00
000000e9: MSTORE
000000ea: PUSH1 0x40
000000ec: PUSH1 0x00
000000ee: KECCAK256
000000ef: PUSH1 0x00
000000f1: SWAP2
000000f2: POP
000000f3: SWAP1
000000f4: POP
000000f5: DUP1
000000f6: PUSH1 0x00
000000f8: ADD
000000f9: PUSH1 0x00
000000fb: POP
000000fc: SLOAD
000000fd: SWAP1
000000fe: DUP1
000000ff: PUSH1 0x01
00000101: ADD
00000102: PUSH1 0x00
00000104: POP
00000105: SLOAD
00000106: SWAP1
00000107: POP
00000108: DUP3
00000109: JUMP
0000010a: JUMPDEST
0000010b: PUSH1 0x01
0000010d: PUSH1 0x00
0000010f: POP
00000110: SLOAD
00000111: DUP2
00000112: JUMP
00000113: JUMPDEST
00000114: PUSH1 0x00
00000116: PUSH1 0x00
00000118: PUSH1 0x00
0000011a: CALLVALUE
0000011b: GT
0000011c: ISZERO
0000011d: PUSH2 0x0276
00000120: JUMPI
00000121: CALLER
00000122: SWAP2
00000123: POP
00000124: PUSH1 0x01
00000126: PUSH1 0x00
00000128: POP
00000129: SLOAD
0000012a: TIMESTAMP
0000012b: ADD
0000012c: SWAP1
0000012d: POP
0000012e: CALLVALUE
0000012f: PUSH1 0x00
00000131: PUSH1 0x00
00000133: POP
00000134: PUSH1 0x00
00000136: DUP5
00000137: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000014c: AND
0000014d: DUP2
0000014e: MSTORE
0000014f: PUSH1 0x20
00000151: ADD
00000152: SWAP1
00000153: DUP2
00000154: MSTORE
00000155: PUSH1 0x20
00000157: ADD
00000158: PUSH1 0x00
0000015a: KECCAK256
0000015b: PUSH1 0x00
0000015d: POP
0000015e: PUSH1 0x00
00000160: ADD
00000161: PUSH1 0x00
00000163: DUP3
00000164: DUP3
00000165: DUP3
00000166: POP
00000167: SLOAD
00000168: ADD
00000169: SWAP3
0000016a: POP
0000016b: POP
0000016c: DUP2
0000016d: SWAP1
0000016e: SSTORE
0000016f: POP
00000170: DUP1
00000171: PUSH1 0x00
00000173: PUSH1 0x00
00000175: POP
00000176: PUSH1 0x00
00000178: DUP5
00000179: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000018e: AND
0000018f: DUP2
00000190: MSTORE
00000191: PUSH1 0x20
00000193: ADD
00000194: SWAP1
00000195: DUP2
00000196: MSTORE
00000197: PUSH1 0x20
00000199: ADD
0000019a: PUSH1 0x00
0000019c: KECCAK256
0000019d: PUSH1 0x00
0000019f: POP
000001a0: PUSH1 0x01
000001a2: ADD
000001a3: PUSH1 0x00
000001a5: POP
000001a6: DUP2
000001a7: SWAP1
000001a8: SSTORE
000001a9: POP
000001aa: CALLER
000001ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001c0: AND
000001c1: PUSH32 0x44cebfefa4561bee5b61d675ccfd8dc9969fff9cc15e7a4eccccd62af94f9c11
000001e2: PUSH1 0x00
000001e4: PUSH1 0x00
000001e6: POP
000001e7: PUSH1 0x00
000001e9: DUP6
000001ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ff: AND
00000200: DUP2
00000201: MSTORE
00000202: PUSH1 0x20
00000204: ADD
00000205: SWAP1
00000206: DUP2
00000207: MSTORE
00000208: PUSH1 0x20
0000020a: ADD
0000020b: PUSH1 0x00
0000020d: KECCAK256
0000020e: PUSH1 0x00
00000210: POP
00000211: PUSH1 0x01
00000213: ADD
00000214: PUSH1 0x00
00000216: POP
00000217: SLOAD
00000218: PUSH1 0x00
0000021a: PUSH1 0x00
0000021c: POP
0000021d: PUSH1 0x00
0000021f: DUP7
00000220: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000235: AND
00000236: DUP2
00000237: MSTORE
00000238: PUSH1 0x20
0000023a: ADD
0000023b: SWAP1
0000023c: DUP2
0000023d: MSTORE
0000023e: PUSH1 0x20
00000240: ADD
00000241: PUSH1 0x00
00000243: KECCAK256
00000244: PUSH1 0x00
00000246: POP
00000247: PUSH1 0x00
00000249: ADD
0000024a: PUSH1 0x00
0000024c: POP
0000024d: SLOAD
0000024e: TIMESTAMP
0000024f: PUSH1 0x40
00000251: MLOAD
00000252: DUP1
00000253: DUP5
00000254: DUP2
00000255: MSTORE
00000256: PUSH1 0x20
00000258: ADD
00000259: DUP4
0000025a: DUP2
0000025b: MSTORE
0000025c: PUSH1 0x20
0000025e: ADD
0000025f: DUP3
00000260: DUP2
00000261: MSTORE
00000262: PUSH1 0x20
00000264: ADD
00000265: SWAP4
00000266: POP
00000267: POP
00000268: POP
00000269: POP
0000026a: PUSH1 0x40
0000026c: MLOAD
0000026d: DUP1
0000026e: SWAP2
0000026f: SUB
00000270: SWAP1
00000271: LOG2
00000272: PUSH2 0x027b
00000275: JUMP
00000276: JUMPDEST
00000277: PUSH2 0x027c
0000027a: JUMP
0000027b: JUMPDEST
0000027c: JUMPDEST
0000027d: POP
0000027e: POP
0000027f: JUMP
00000280: JUMPDEST
00000281: PUSH1 0x00
00000283: PUSH1 0x00
00000285: PUSH1 0x00
00000287: PUSH1 0x00
00000289: POP
0000028a: PUSH1 0x00
0000028c: CALLER
0000028d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a2: AND
000002a3: DUP2
000002a4: MSTORE
000002a5: PUSH1 0x20
000002a7: ADD
000002a8: SWAP1
000002a9: DUP2
000002aa: MSTORE
000002ab: PUSH1 0x20
000002ad: ADD
000002ae: PUSH1 0x00
000002b0: KECCAK256
000002b1: PUSH1 0x00
000002b3: POP
000002b4: PUSH1 0x00
000002b6: ADD
000002b7: PUSH1 0x00
000002b9: POP
000002ba: SLOAD
000002bb: GT
000002bc: DUP1
000002bd: ISZERO
000002be: PUSH2 0x02fc
000002c1: JUMPI
000002c2: POP
000002c3: PUSH1 0x00
000002c5: PUSH1 0x00
000002c7: PUSH1 0x00
000002c9: POP
000002ca: PUSH1 0x00
000002cc: CALLER
000002cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002e2: AND
000002e3: DUP2
000002e4: MSTORE
000002e5: PUSH1 0x20
000002e7: ADD
000002e8: SWAP1
000002e9: DUP2
000002ea: MSTORE
000002eb: PUSH1 0x20
000002ed: ADD
000002ee: PUSH1 0x00
000002f0: KECCAK256
000002f1: PUSH1 0x00
000002f3: POP
000002f4: PUSH1 0x01
000002f6: ADD
000002f7: PUSH1 0x00
000002f9: POP
000002fa: SLOAD
000002fb: GT
000002fc: JUMPDEST
000002fd: DUP1
000002fe: ISZERO
000002ff: PUSH2 0x033c
00000302: JUMPI
00000303: POP
00000304: PUSH1 0x00
00000306: PUSH1 0x00
00000308: POP
00000309: PUSH1 0x00
0000030b: CALLER
0000030c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000321: AND
00000322: DUP2
00000323: MSTORE
00000324: PUSH1 0x20
00000326: ADD
00000327: SWAP1
00000328: DUP2
00000329: MSTORE
0000032a: PUSH1 0x20
0000032c: ADD
0000032d: PUSH1 0x00
0000032f: KECCAK256
00000330: PUSH1 0x00
00000332: POP
00000333: PUSH1 0x01
00000335: ADD
00000336: PUSH1 0x00
00000338: POP
00000339: SLOAD
0000033a: TIMESTAMP
0000033b: GT
0000033c: JUMPDEST
0000033d: ISZERO
0000033e: PUSH2 0x04b9
00000341: JUMPI
00000342: CALLER
00000343: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000358: AND
00000359: PUSH1 0x00
0000035b: PUSH1 0x00
0000035d: PUSH1 0x00
0000035f: POP
00000360: PUSH1 0x00
00000362: CALLER
00000363: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000378: AND
00000379: DUP2
0000037a: MSTORE
0000037b: PUSH1 0x20
0000037d: ADD
0000037e: SWAP1
0000037f: DUP2
00000380: MSTORE
00000381: PUSH1 0x20
00000383: ADD
00000384: PUSH1 0x00
00000386: KECCAK256
00000387: PUSH1 0x00
00000389: POP
0000038a: PUSH1 0x00
0000038c: ADD
0000038d: PUSH1 0x00
0000038f: POP
00000390: SLOAD
00000391: PUSH1 0x40
00000393: MLOAD
00000394: DUP1
00000395: SWAP1
00000396: POP
00000397: PUSH1 0x00
00000399: PUSH1 0x40
0000039b: MLOAD
0000039c: DUP1
0000039d: DUP4
0000039e: SUB
0000039f: DUP2
000003a0: DUP6
000003a1: DUP9
000003a2: DUP9
000003a3: CALL
000003a4: SWAP4
000003a5: POP
000003a6: POP
000003a7: POP
000003a8: POP
000003a9: POP
000003aa: PUSH1 0x00
000003ac: PUSH1 0x00
000003ae: PUSH1 0x00
000003b0: POP
000003b1: PUSH1 0x00
000003b3: CALLER
000003b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c9: AND
000003ca: DUP2
000003cb: MSTORE
000003cc: PUSH1 0x20
000003ce: ADD
000003cf: SWAP1
000003d0: DUP2
000003d1: MSTORE
000003d2: PUSH1 0x20
000003d4: ADD
000003d5: PUSH1 0x00
000003d7: KECCAK256
000003d8: PUSH1 0x00
000003da: POP
000003db: PUSH1 0x00
000003dd: ADD
000003de: PUSH1 0x00
000003e0: POP
000003e1: DUP2
000003e2: SWAP1
000003e3: SSTORE
000003e4: POP
000003e5: CALLER
000003e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003fb: AND
000003fc: PUSH32 0x84557df06a9cf3a49d0c3fb7e6ed5a54d316659c8d62d269901c3dfccf741fd8
0000041d: PUSH1 0x00
0000041f: PUSH1 0x00
00000421: POP
00000422: PUSH1 0x00
00000424: CALLER
00000425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000043a: AND
0000043b: DUP2
0000043c: MSTORE
0000043d: PUSH1 0x20
0000043f: ADD
00000440: SWAP1
00000441: DUP2
00000442: MSTORE
00000443: PUSH1 0x20
00000445: ADD
00000446: PUSH1 0x00
00000448: KECCAK256
00000449: PUSH1 0x00
0000044b: POP
0000044c: PUSH1 0x01
0000044e: ADD
0000044f: PUSH1 0x00
00000451: POP
00000452: SLOAD
00000453: PUSH1 0x00
00000455: PUSH1 0x00
00000457: POP
00000458: PUSH1 0x00
0000045a: CALLER
0000045b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000470: AND
00000471: DUP2
00000472: MSTORE
00000473: PUSH1 0x20
00000475: ADD
00000476: SWAP1
00000477: DUP2
00000478: MSTORE
00000479: PUSH1 0x20
0000047b: ADD
0000047c: PUSH1 0x00
0000047e: KECCAK256
0000047f: PUSH1 0x00
00000481: POP
00000482: PUSH1 0x00
00000484: ADD
00000485: PUSH1 0x00
00000487: POP
00000488: SLOAD
00000489: TIMESTAMP
0000048a: PUSH1 0x40
0000048c: MLOAD
0000048d: DUP1
0000048e: DUP5
0000048f: DUP2
00000490: MSTORE
00000491: PUSH1 0x20
00000493: ADD
00000494: DUP4
00000495: DUP2
00000496: MSTORE
00000497: PUSH1 0x20
00000499: ADD
0000049a: DUP3
0000049b: DUP2
0000049c: MSTORE
0000049d: PUSH1 0x20
0000049f: ADD
000004a0: SWAP4
000004a1: POP
000004a2: POP
000004a3: POP
000004a4: POP
000004a5: PUSH1 0x40
000004a7: MLOAD
000004a8: DUP1
000004a9: SWAP2
000004aa: SUB
000004ab: SWAP1
000004ac: LOG2
000004ad: PUSH1 0x01
000004af: SWAP1
000004b0: POP
000004b1: PUSH2 0x04c3
000004b4: JUMP
000004b5: PUSH2 0x04c2
000004b8: JUMP
000004b9: JUMPDEST
000004ba: PUSH1 0x00
000004bc: SWAP1
000004bd: POP
000004be: PUSH2 0x04c3
000004c1: JUMP
000004c2: JUMPDEST
000004c3: JUMPDEST
000004c4: SWAP1
000004c5: 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: 0x092a41f927f6df629c4d3fabb4c25a756cbfb4126049c7118800a048f4fb29ae
call_targets: 0x5f67a690ba13d0d300360b62cafd4d5b94900d06
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x092a41f927f6df629c4d3fabb4c25a756cbfb4126049c7118800a048f4fb29ae",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5f67a690ba13d0d300360b62cafd4d5b94900d06"
    ],
    "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": "0x0fb5a6b4",
            "selector": "0x0fb5a6b4",
            "calldata_variants": [
                "0x0fb5a6b4",
                "0x0fb5a6b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5e5c06e2",
            "selector": "0x5e5c06e2",
            "calldata_variants": [
                "0x5e5c06e2",
                "0x5e5c06e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 931,
            "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: 0x092a41f927f6df629c4d3fabb4c25a756cbfb4126049c7118800a048f4fb29ae
call_targets: 0x5f67a690ba13d0d300360b62cafd4d5b94900d06
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x092a41f927f6df629c4d3fabb4c25a756cbfb4126049c7118800a048f4fb29ae",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5f67a690ba13d0d300360b62cafd4d5b94900d06"
    ],
    "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": "0x0fb5a6b4",
            "selector": "0x0fb5a6b4",
            "calldata_variants": [
                "0x0fb5a6b4",
                "0x0fb5a6b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5e5c06e2",
            "selector": "0x5e5c06e2",
            "calldata_variants": [
                "0x5e5c06e2",
                "0x5e5c06e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 931,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}