019b3836-2e97-70bf-b5f2-c39d0187d1e9
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 |
|---|---|---|---|---|
| 2299 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 2300 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 45512 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 45513 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 45514 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 45515 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
No codex job recorded yet.
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x0069 0000000a: JUMPI 0000000b: PUSH1 0x00 0000000d: CALLDATALOAD 0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002c: SWAP1 0000002d: DIV 0000002e: DUP1 0000002f: PUSH4 0x232a3060 00000034: EQ 00000035: PUSH2 0x00d8 00000038: JUMPI 00000039: DUP1 0000003a: PUSH4 0x69f384c4 0000003f: EQ 00000040: PUSH2 0x00f0 00000043: JUMPI 00000044: DUP1 00000045: PUSH4 0x9d735286 0000004a: EQ 0000004b: PUSH2 0x0132 0000004e: JUMPI 0000004f: DUP1 00000050: PUSH4 0xa6f9dae1 00000055: EQ 00000056: PUSH2 0x0141 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0xfa89401a 00000060: EQ 00000061: PUSH2 0x0159 00000064: JUMPI 00000065: PUSH2 0x0069 00000068: JUMP 00000069: JUMPDEST 0000006a: PUSH2 0x00d6 0000006d: JUMPDEST 0000006e: NUMBER 0000006f: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db 00000090: CALLER 00000091: CALLVALUE 00000092: TIMESTAMP 00000093: PUSH1 0x40 00000095: MLOAD 00000096: DUP1 00000097: DUP5 00000098: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000ad: AND 000000ae: DUP2 000000af: MSTORE 000000b0: PUSH1 0x20 000000b2: ADD 000000b3: DUP4 000000b4: DUP2 000000b5: MSTORE 000000b6: PUSH1 0x20 000000b8: ADD 000000b9: DUP3 000000ba: DUP2 000000bb: MSTORE 000000bc: PUSH1 0x20 000000be: ADD 000000bf: SWAP4 000000c0: POP 000000c1: POP 000000c2: POP 000000c3: POP 000000c4: PUSH1 0x40 000000c6: MLOAD 000000c7: DUP1 000000c8: SWAP2 000000c9: SUB 000000ca: SWAP1 000000cb: LOG2 000000cc: PUSH2 0x00d3 000000cf: PUSH2 0x0377 000000d2: JUMP 000000d3: JUMPDEST 000000d4: JUMPDEST 000000d5: JUMP 000000d6: JUMPDEST 000000d7: STOP 000000d8: JUMPDEST 000000d9: PUSH2 0x00ee 000000dc: PUSH1 0x04 000000de: DUP1 000000df: DUP1 000000e0: CALLDATALOAD 000000e1: SWAP1 000000e2: PUSH1 0x20 000000e4: ADD 000000e5: SWAP1 000000e6: SWAP2 000000e7: SWAP1 000000e8: POP 000000e9: POP 000000ea: PUSH2 0x0171 000000ed: JUMP 000000ee: JUMPDEST 000000ef: STOP 000000f0: JUMPDEST 000000f1: PUSH2 0x0106 000000f4: PUSH1 0x04 000000f6: DUP1 000000f7: DUP1 000000f8: CALLDATALOAD 000000f9: SWAP1 000000fa: PUSH1 0x20 000000fc: ADD 000000fd: SWAP1 000000fe: SWAP2 000000ff: SWAP1 00000100: POP 00000101: POP 00000102: PUSH2 0x023c 00000105: JUMP 00000106: JUMPDEST 00000107: PUSH1 0x40 00000109: MLOAD 0000010a: DUP1 0000010b: DUP3 0000010c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000121: AND 00000122: DUP2 00000123: MSTORE 00000124: PUSH1 0x20 00000126: ADD 00000127: SWAP2 00000128: POP 00000129: POP 0000012a: PUSH1 0x40 0000012c: MLOAD 0000012d: DUP1 0000012e: SWAP2 0000012f: SUB 00000130: SWAP1 00000131: RETURN 00000132: JUMPDEST 00000133: PUSH2 0x013f 00000136: PUSH1 0x04 00000138: DUP1 00000139: POP 0000013a: POP 0000013b: PUSH2 0x0377 0000013e: JUMP 0000013f: JUMPDEST 00000140: STOP 00000141: JUMPDEST 00000142: PUSH2 0x0157 00000145: PUSH1 0x04 00000147: DUP1 00000148: DUP1 00000149: CALLDATALOAD 0000014a: SWAP1 0000014b: PUSH1 0x20 0000014d: ADD 0000014e: SWAP1 0000014f: SWAP2 00000150: SWAP1 00000151: POP 00000152: POP 00000153: PUSH2 0x02e8 00000156: JUMP 00000157: JUMPDEST 00000158: STOP 00000159: JUMPDEST 0000015a: PUSH2 0x016f 0000015d: PUSH1 0x04 0000015f: DUP1 00000160: DUP1 00000161: CALLDATALOAD 00000162: SWAP1 00000163: PUSH1 0x20 00000165: ADD 00000166: SWAP1 00000167: SWAP2 00000168: SWAP1 00000169: POP 0000016a: POP 0000016b: PUSH2 0x0401 0000016e: JUMP 0000016f: JUMPDEST 00000170: STOP 00000171: JUMPDEST 00000172: PUSH1 0x00 00000174: PUSH1 0x00 00000176: PUSH1 0x00 00000178: SWAP1 00000179: SLOAD 0000017a: SWAP1 0000017b: PUSH2 0x0100 0000017e: EXP 0000017f: SWAP1 00000180: DIV 00000181: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000196: AND 00000197: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001ac: AND 000001ad: CALLER 000001ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001c3: AND 000001c4: EQ 000001c5: ISZERO 000001c6: PUSH2 0x0232 000001c9: JUMPI 000001ca: DUP2 000001cb: SWAP1 000001cc: POP 000001cd: PUSH1 0x20 000001cf: PUSH1 0x40 000001d1: MLOAD 000001d2: SWAP1 000001d3: DUP2 000001d4: ADD 000001d5: PUSH1 0x40 000001d7: MSTORE 000001d8: DUP1 000001d9: DUP3 000001da: DUP2 000001db: MSTORE 000001dc: PUSH1 0x20 000001de: ADD 000001df: POP 000001e0: PUSH1 0x01 000001e2: PUSH1 0x00 000001e4: POP 000001e5: PUSH1 0x00 000001e7: PUSH1 0x00 000001e9: DUP2 000001ea: MSTORE 000001eb: PUSH1 0x20 000001ed: ADD 000001ee: SWAP1 000001ef: DUP2 000001f0: MSTORE 000001f1: PUSH1 0x20 000001f3: ADD 000001f4: PUSH1 0x00 000001f6: KECCAK256 000001f7: PUSH1 0x00 000001f9: POP 000001fa: PUSH1 0x00 000001fc: DUP3 000001fd: ADD 000001fe: MLOAD 000001ff: DUP2 00000200: PUSH1 0x00 00000202: ADD 00000203: PUSH1 0x00 00000205: PUSH2 0x0100 00000208: EXP 00000209: DUP2 0000020a: SLOAD 0000020b: DUP2 0000020c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000221: MUL 00000222: NOT 00000223: AND 00000224: SWAP1 00000225: DUP4 00000226: MUL 00000227: OR 00000228: SWAP1 00000229: SSTORE 0000022a: POP 0000022b: SWAP1 0000022c: POP 0000022d: POP 0000022e: PUSH2 0x0237 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH2 0x0002 00000236: JUMP 00000237: JUMPDEST 00000238: JUMPDEST 00000239: POP 0000023a: POP 0000023b: JUMP 0000023c: JUMPDEST 0000023d: PUSH1 0x00 0000023f: PUSH1 0x00 00000241: PUSH1 0x00 00000243: SWAP1 00000244: SLOAD 00000245: SWAP1 00000246: PUSH2 0x0100 00000249: EXP 0000024a: SWAP1 0000024b: DIV 0000024c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000261: AND 00000262: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000277: AND 00000278: CALLER 00000279: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000028e: AND 0000028f: EQ 00000290: ISZERO 00000291: PUSH2 0x02dd 00000294: JUMPI 00000295: PUSH1 0x01 00000297: PUSH1 0x00 00000299: POP 0000029a: PUSH1 0x00 0000029c: PUSH1 0x00 0000029e: DUP2 0000029f: MSTORE 000002a0: PUSH1 0x20 000002a2: ADD 000002a3: SWAP1 000002a4: DUP2 000002a5: MSTORE 000002a6: PUSH1 0x20 000002a8: ADD 000002a9: PUSH1 0x00 000002ab: KECCAK256 000002ac: PUSH1 0x00 000002ae: POP 000002af: PUSH1 0x00 000002b1: ADD 000002b2: PUSH1 0x00 000002b4: SWAP1 000002b5: SLOAD 000002b6: SWAP1 000002b7: PUSH2 0x0100 000002ba: EXP 000002bb: SWAP1 000002bc: DIV 000002bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002d2: AND 000002d3: SWAP1 000002d4: POP 000002d5: PUSH2 0x02e3 000002d8: JUMP 000002d9: PUSH2 0x02e2 000002dc: JUMP 000002dd: JUMPDEST 000002de: PUSH2 0x0002 000002e1: JUMP 000002e2: JUMPDEST 000002e3: JUMPDEST 000002e4: SWAP2 000002e5: SWAP1 000002e6: POP 000002e7: JUMP 000002e8: JUMPDEST 000002e9: PUSH1 0x00 000002eb: PUSH1 0x00 000002ed: SWAP1 000002ee: SLOAD 000002ef: SWAP1 000002f0: PUSH2 0x0100 000002f3: EXP 000002f4: SWAP1 000002f5: DIV 000002f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000030b: AND 0000030c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000321: AND 00000322: CALLER 00000323: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000338: AND 00000339: EQ 0000033a: ISZERO 0000033b: PUSH2 0x036e 0000033e: JUMPI 0000033f: DUP1 00000340: PUSH1 0x00 00000342: PUSH1 0x00 00000344: PUSH2 0x0100 00000347: EXP 00000348: DUP2 00000349: SLOAD 0000034a: DUP2 0000034b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000360: MUL 00000361: NOT 00000362: AND 00000363: SWAP1 00000364: DUP4 00000365: MUL 00000366: OR 00000367: SWAP1 00000368: SSTORE 00000369: POP 0000036a: PUSH2 0x0373 0000036d: JUMP 0000036e: JUMPDEST 0000036f: PUSH2 0x0002 00000372: JUMP 00000373: JUMPDEST 00000374: JUMPDEST 00000375: POP 00000376: JUMP 00000377: JUMPDEST 00000378: PUSH1 0x01 0000037a: PUSH1 0x00 0000037c: POP 0000037d: PUSH1 0x00 0000037f: PUSH1 0x00 00000381: DUP2 00000382: MSTORE 00000383: PUSH1 0x20 00000385: ADD 00000386: SWAP1 00000387: DUP2 00000388: MSTORE 00000389: PUSH1 0x20 0000038b: ADD 0000038c: PUSH1 0x00 0000038e: KECCAK256 0000038f: PUSH1 0x00 00000391: POP 00000392: PUSH1 0x00 00000394: ADD 00000395: PUSH1 0x00 00000397: SWAP1 00000398: SLOAD 00000399: SWAP1 0000039a: PUSH2 0x0100 0000039d: EXP 0000039e: SWAP1 0000039f: DIV 000003a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003b5: AND 000003b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003cb: AND 000003cc: PUSH1 0x00 000003ce: ADDRESS 000003cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e4: AND 000003e5: BALANCE 000003e6: PUSH1 0x40 000003e8: MLOAD 000003e9: DUP1 000003ea: SWAP1 000003eb: POP 000003ec: PUSH1 0x00 000003ee: PUSH1 0x40 000003f0: MLOAD 000003f1: DUP1 000003f2: DUP4 000003f3: SUB 000003f4: DUP2 000003f5: DUP6 000003f6: DUP9 000003f7: DUP9 000003f8: CALL 000003f9: SWAP4 000003fa: POP 000003fb: POP 000003fc: POP 000003fd: POP 000003fe: POP 000003ff: JUMPDEST 00000400: JUMP 00000401: JUMPDEST 00000402: PUSH1 0x00 00000404: PUSH1 0x00 00000406: SWAP1 00000407: SLOAD 00000408: SWAP1 00000409: PUSH2 0x0100 0000040c: EXP 0000040d: SWAP1 0000040e: DIV 0000040f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000424: AND 00000425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000043a: AND 0000043b: CALLER 0000043c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000451: AND 00000452: EQ 00000453: ISZERO 00000454: PUSH2 0x04c9 00000457: JUMPI 00000458: PUSH32 0xb854f581145dc1eb640e9c943dd96947618be343eb869017cae7a0d959b41689 00000479: ADDRESS 0000047a: TIMESTAMP 0000047b: PUSH1 0x40 0000047d: MLOAD 0000047e: DUP1 0000047f: DUP4 00000480: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000495: AND 00000496: DUP2 00000497: MSTORE 00000498: PUSH1 0x20 0000049a: ADD 0000049b: DUP3 0000049c: DUP2 0000049d: MSTORE 0000049e: PUSH1 0x20 000004a0: ADD 000004a1: SWAP3 000004a2: POP 000004a3: POP 000004a4: POP 000004a5: PUSH1 0x40 000004a7: MLOAD 000004a8: DUP1 000004a9: SWAP2 000004aa: SUB 000004ab: SWAP1 000004ac: LOG1 000004ad: DUP1 000004ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004c3: AND 000004c4: SELFDESTRUCT 000004c5: PUSH2 0x04ce 000004c8: JUMP 000004c9: JUMPDEST 000004ca: PUSH2 0x0002 000004cd: JUMP 000004ce: JUMPDEST 000004cf: JUMPDEST 000004d0: POP 000004d1: JUMP
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.
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x701f0a51724cd9f878ee1629c8c7a57b1801d049ee6ec9844fb1b1bf52120ae0
call_targets:
0x2386ddc994723c1e1a9fde9241e9f1db7aaa66f5
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x701f0a51724cd9f878ee1629c8c7a57b1801d049ee6ec9844fb1b1bf52120ae0",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2386ddc994723c1e1a9fde9241e9f1db7aaa66f5"
],
"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": "0x232a3060",
"selector": "0x232a3060",
"calldata_variants": [
"0x232a3060",
"0x232a30600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x69f384c4",
"selector": "0x69f384c4",
"calldata_variants": [
"0x69f384c4",
"0x69f384c40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1016,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 429,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 632,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 802,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0x21267e64be2322bb4c92e9ac1d42d2b344a0b06078cf435307ffd3ae27b1cf0a
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 10,
"trace_id": "0x21267e64be2322bb4c92e9ac1d42d2b344a0b06078cf435307ffd3ae27b1cf0a",
"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": "0x232a3060",
"selector": "0x232a3060",
"calldata_variants": [
"0x232a3060",
"0x232a30600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x69f384c4",
"selector": "0x69f384c4",
"calldata_variants": [
"0x69f384c4",
"0x69f384c40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 429,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 632,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 802,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x701f0a51724cd9f878ee1629c8c7a57b1801d049ee6ec9844fb1b1bf52120ae0
call_targets:
0x2386ddc994723c1e1a9fde9241e9f1db7aaa66f5
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x701f0a51724cd9f878ee1629c8c7a57b1801d049ee6ec9844fb1b1bf52120ae0",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2386ddc994723c1e1a9fde9241e9f1db7aaa66f5"
],
"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": "0x232a3060",
"selector": "0x232a3060",
"calldata_variants": [
"0x232a3060",
"0x232a30600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x69f384c4",
"selector": "0x69f384c4",
"calldata_variants": [
"0x69f384c4",
"0x69f384c40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1016,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 429,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 632,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 802,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|