019b477e-b44b-729a-b325-042ec2175db7
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 22701 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 22702 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 89537 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 89538 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 89539 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 89540 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
No codex job recorded yet.
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x004b 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000030: PUSH1 0x00 00000032: CALLDATALOAD 00000033: DIV 00000034: AND 00000035: PUSH4 0x893d20e8 0000003a: DUP2 0000003b: EQ 0000003c: PUSH2 0x0064 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0xaad3ec96 00000046: EQ 00000047: PUSH2 0x0095 0000004a: JUMPI 0000004b: JUMPDEST 0000004c: PUSH1 0x00 0000004e: SLOAD 0000004f: PUSH1 0x01 00000051: PUSH1 0xa0 00000053: PUSH1 0x02 00000055: EXP 00000056: SUB 00000057: AND 00000058: CALLER 00000059: EQ 0000005a: PUSH2 0x0062 0000005d: JUMPI 0000005e: PUSH1 0x00 00000060: DUP1 00000061: REVERT 00000062: JUMPDEST 00000063: STOP 00000064: JUMPDEST 00000065: CALLVALUE 00000066: DUP1 00000067: ISZERO 00000068: PUSH2 0x0070 0000006b: JUMPI 0000006c: PUSH1 0x00 0000006e: DUP1 0000006f: REVERT 00000070: JUMPDEST 00000071: POP 00000072: PUSH2 0x0079 00000075: PUSH2 0x00b9 00000078: JUMP 00000079: JUMPDEST 0000007a: PUSH1 0x40 0000007c: DUP1 0000007d: MLOAD 0000007e: PUSH1 0x01 00000080: PUSH1 0xa0 00000082: PUSH1 0x02 00000084: EXP 00000085: SUB 00000086: SWAP1 00000087: SWAP3 00000088: AND 00000089: DUP3 0000008a: MSTORE 0000008b: MLOAD 0000008c: SWAP1 0000008d: DUP2 0000008e: SWAP1 0000008f: SUB 00000090: PUSH1 0x20 00000092: ADD 00000093: SWAP1 00000094: RETURN 00000095: JUMPDEST 00000096: CALLVALUE 00000097: DUP1 00000098: ISZERO 00000099: PUSH2 0x00a1 0000009c: JUMPI 0000009d: PUSH1 0x00 0000009f: DUP1 000000a0: REVERT 000000a1: JUMPDEST 000000a2: POP 000000a3: PUSH2 0x0062 000000a6: PUSH1 0x01 000000a8: PUSH1 0xa0 000000aa: PUSH1 0x02 000000ac: EXP 000000ad: SUB 000000ae: PUSH1 0x04 000000b0: CALLDATALOAD 000000b1: AND 000000b2: PUSH1 0x24 000000b4: CALLDATALOAD 000000b5: PUSH2 0x00c8 000000b8: JUMP 000000b9: JUMPDEST 000000ba: PUSH1 0x00 000000bc: SLOAD 000000bd: PUSH1 0x01 000000bf: PUSH1 0xa0 000000c1: PUSH1 0x02 000000c3: EXP 000000c4: SUB 000000c5: AND 000000c6: SWAP1 000000c7: JUMP 000000c8: JUMPDEST 000000c9: PUSH1 0x00 000000cb: SLOAD 000000cc: PUSH1 0x01 000000ce: PUSH1 0xa0 000000d0: PUSH1 0x02 000000d2: EXP 000000d3: SUB 000000d4: AND 000000d5: CALLER 000000d6: EQ 000000d7: PUSH2 0x00df 000000da: JUMPI 000000db: PUSH1 0x00 000000dd: DUP1 000000de: REVERT 000000df: JUMPDEST 000000e0: ADDRESS 000000e1: BALANCE 000000e2: DUP2 000000e3: GT 000000e4: ISZERO 000000e5: PUSH2 0x00ed 000000e8: JUMPI 000000e9: PUSH1 0x00 000000eb: DUP1 000000ec: REVERT 000000ed: JUMPDEST 000000ee: PUSH1 0x01 000000f0: PUSH1 0xa0 000000f2: PUSH1 0x02 000000f4: EXP 000000f5: SUB 000000f6: DUP3 000000f7: AND 000000f8: ISZERO 000000f9: ISZERO 000000fa: PUSH2 0x0102 000000fd: JUMPI 000000fe: PUSH1 0x00 00000100: DUP1 00000101: REVERT 00000102: JUMPDEST 00000103: PUSH1 0x40 00000105: MLOAD 00000106: PUSH1 0x01 00000108: PUSH1 0xa0 0000010a: PUSH1 0x02 0000010c: EXP 0000010d: SUB 0000010e: DUP4 0000010f: AND 00000110: SWAP1 00000111: DUP3 00000112: ISZERO 00000113: PUSH2 0x08fc 00000116: MUL 00000117: SWAP1 00000118: DUP4 00000119: SWAP1 0000011a: PUSH1 0x00 0000011c: DUP2 0000011d: DUP2 0000011e: DUP2 0000011f: DUP6 00000120: DUP9 00000121: DUP9 00000122: CALL 00000123: SWAP4 00000124: POP 00000125: POP 00000126: POP 00000127: POP 00000128: ISZERO 00000129: DUP1 0000012a: ISZERO 0000012b: PUSH2 0x0138 0000012e: JUMPI 0000012f: RETURNDATASIZE 00000130: PUSH1 0x00 00000132: DUP1 00000133: RETURNDATACOPY 00000134: RETURNDATASIZE 00000135: PUSH1 0x00 00000137: REVERT 00000138: JUMPDEST 00000139: POP 0000013a: POP 0000013b: POP 0000013c: JUMP 0000013d: STOP 0000013e: LOG1 0000013f: PUSH6 0x627a7a723058 00000146: KECCAK256 00000147: CALLDATALOAD 00000148: AND 00000149: PUSH2 0x7b9e 0000014c: SWAP16 0000014d: LOG2 0000014e: UNKNOWN(0xCB) 0000014f: UNKNOWN(0xA8) 00000150: SWAP7 00000151: CHAINID 00000152: UNKNOWN(0xE0) 00000153: EXTCODECOPY 00000154: UNKNOWN(0xD0) 00000155: BLOBHASH 00000156: DUP12 00000157: ADDRESS 00000158: RETURNDATACOPY 00000159: ORIGIN 0000015a: UNKNOWN(0xBF) 0000015b: NOT 0000015c: CALLDATASIZE 0000015d: CALLCODE 0000015e: UNKNOWN(0xBD) 0000015f: SWAP4 00000160: SELFDESTRUCT 00000161: DUP9 00000162: UNKNOWN(0xF6) 00000163: UNKNOWN(0xAA) 00000164: UNKNOWN(0x21) 00000165: UNKNOWN(0xC8) 00000166: ADD 00000167: STOP 00000168: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x893d20e8",
"selector": "0x893d20e8",
"calldata_variants": [
"0x893d20e8",
"0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaad3ec96",
"selector": "0xaad3ec96",
"calldata_variants": [
"0xaad3ec96",
"0xaad3ec960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 345,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xdf383da1b096efef40abb8256cf050caf9e715970eb1a7d8a64206fe0caa8cac
call_targets:
0x86ed5b9a56b9f9ee7b399a68999c658384941ca1
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdf383da1b096efef40abb8256cf050caf9e715970eb1a7d8a64206fe0caa8cac",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x86ed5b9a56b9f9ee7b399a68999c658384941ca1"
],
"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": "0x893d20e8",
"selector": "0x893d20e8",
"calldata_variants": [
"0x893d20e8",
"0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaad3ec96",
"selector": "0xaad3ec96",
"calldata_variants": [
"0xaad3ec96",
"0xaad3ec960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 290,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 349,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 345,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xdf383da1b096efef40abb8256cf050caf9e715970eb1a7d8a64206fe0caa8cac
call_targets:
0x86ed5b9a56b9f9ee7b399a68999c658384941ca1
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdf383da1b096efef40abb8256cf050caf9e715970eb1a7d8a64206fe0caa8cac",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x86ed5b9a56b9f9ee7b399a68999c658384941ca1"
],
"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": "0x893d20e8",
"selector": "0x893d20e8",
"calldata_variants": [
"0x893d20e8",
"0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaad3ec96",
"selector": "0xaad3ec96",
"calldata_variants": [
"0xaad3ec96",
"0xaad3ec960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 290,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 349,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 345,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0x9dcd4759def6499823c744e3117e475b5cfb657357edfe0611e33908111088c8
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 4,
"trace_id": "0x9dcd4759def6499823c744e3117e475b5cfb657357edfe0611e33908111088c8",
"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": "0x893d20e8",
"selector": "0x893d20e8",
"calldata_variants": [
"0x893d20e8",
"0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaad3ec96",
"selector": "0xaad3ec96",
"calldata_variants": [
"0xaad3ec96",
"0xaad3ec960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 345,
"type": "tx_origin_used"
}
],
"selfdestruct_count": 1
}
|