019b3836-2d34-73c2-a146-fa5f502e03b4
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 |
|---|---|---|---|---|
| 2057 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 2058 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 45308 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 45309 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 45310 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 45311 | 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 0x005e 0000000a: JUMPI 0000000b: PUSH1 0x00 0000000d: CALLDATALOAD 0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002c: SWAP1 0000002d: DIV 0000002e: DUP1 0000002f: PUSH4 0x232a3060 00000034: EQ 00000035: PUSH2 0x00cf 00000038: JUMPI 00000039: DUP1 0000003a: PUSH4 0x9d735286 0000003f: EQ 00000040: PUSH2 0x00e7 00000043: JUMPI 00000044: DUP1 00000045: PUSH4 0xd59933d5 0000004a: EQ 0000004b: PUSH2 0x00f6 0000004e: JUMPI 0000004f: DUP1 00000050: PUSH4 0xfa89401a 00000055: EQ 00000056: PUSH2 0x0105 00000059: JUMPI 0000005a: PUSH2 0x005e 0000005d: JUMP 0000005e: JUMPDEST 0000005f: PUSH2 0x00cd 00000062: JUMPDEST 00000063: NUMBER 00000064: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db 00000085: CALLER 00000086: CALLVALUE 00000087: TIMESTAMP 00000088: PUSH1 0x40 0000008a: MLOAD 0000008b: DUP1 0000008c: DUP5 0000008d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000a2: AND 000000a3: DUP2 000000a4: MSTORE 000000a5: PUSH1 0x20 000000a7: ADD 000000a8: DUP4 000000a9: DUP2 000000aa: MSTORE 000000ab: PUSH1 0x20 000000ad: ADD 000000ae: DUP3 000000af: DUP2 000000b0: MSTORE 000000b1: PUSH1 0x20 000000b3: ADD 000000b4: SWAP4 000000b5: POP 000000b6: POP 000000b7: POP 000000b8: POP 000000b9: PUSH1 0x40 000000bb: MLOAD 000000bc: DUP1 000000bd: SWAP2 000000be: SUB 000000bf: SWAP1 000000c0: LOG2 000000c1: TIMESTAMP 000000c2: PUSH1 0x02 000000c4: PUSH1 0x00 000000c6: POP 000000c7: DUP2 000000c8: SWAP1 000000c9: SSTORE 000000ca: POP 000000cb: JUMPDEST 000000cc: JUMP 000000cd: JUMPDEST 000000ce: STOP 000000cf: JUMPDEST 000000d0: PUSH2 0x00e5 000000d3: PUSH1 0x04 000000d5: DUP1 000000d6: DUP1 000000d7: CALLDATALOAD 000000d8: SWAP1 000000d9: PUSH1 0x20 000000db: ADD 000000dc: SWAP1 000000dd: SWAP2 000000de: SWAP1 000000df: POP 000000e0: POP 000000e1: PUSH2 0x0237 000000e4: JUMP 000000e5: JUMPDEST 000000e6: STOP 000000e7: JUMPDEST 000000e8: PUSH2 0x00f4 000000eb: PUSH1 0x04 000000ed: DUP1 000000ee: POP 000000ef: POP 000000f0: PUSH2 0x02d6 000000f3: JUMP 000000f4: JUMPDEST 000000f5: STOP 000000f6: JUMPDEST 000000f7: PUSH2 0x0103 000000fa: PUSH1 0x04 000000fc: DUP1 000000fd: POP 000000fe: POP 000000ff: PUSH2 0x01cc 00000102: JUMP 00000103: JUMPDEST 00000104: STOP 00000105: JUMPDEST 00000106: PUSH2 0x011b 00000109: PUSH1 0x04 0000010b: DUP1 0000010c: DUP1 0000010d: CALLDATALOAD 0000010e: SWAP1 0000010f: PUSH1 0x20 00000111: ADD 00000112: SWAP1 00000113: SWAP2 00000114: SWAP1 00000115: POP 00000116: POP 00000117: PUSH2 0x011d 0000011a: JUMP 0000011b: JUMPDEST 0000011c: STOP 0000011d: JUMPDEST 0000011e: PUSH1 0x00 00000120: PUSH1 0x00 00000122: SWAP1 00000123: SLOAD 00000124: SWAP1 00000125: PUSH2 0x0100 00000128: EXP 00000129: SWAP1 0000012a: DIV 0000012b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000140: AND 00000141: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000156: AND 00000157: CALLER 00000158: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000016d: AND 0000016e: EQ 0000016f: ISZERO 00000170: PUSH2 0x01c8 00000173: JUMPI 00000174: PUSH1 0x18 00000176: PUSH2 0x0e10 00000179: PUSH1 0x02 0000017b: PUSH1 0x00 0000017d: POP 0000017e: SLOAD 0000017f: TIMESTAMP 00000180: SUB 00000181: DIV 00000182: DIV 00000183: PUSH1 0x04 00000185: PUSH1 0x00 00000187: POP 00000188: DUP2 00000189: SWAP1 0000018a: SSTORE 0000018b: POP 0000018c: PUSH1 0x03 0000018e: PUSH1 0x00 00000190: POP 00000191: SLOAD 00000192: PUSH1 0x04 00000194: PUSH1 0x00 00000196: POP 00000197: SLOAD 00000198: GT 00000199: DUP1 0000019a: ISZERO 0000019b: PUSH2 0x01a9 0000019e: JUMPI 0000019f: POP 000001a0: PUSH1 0x00 000001a2: PUSH1 0x02 000001a4: PUSH1 0x00 000001a6: POP 000001a7: SLOAD 000001a8: GT 000001a9: JUMPDEST 000001aa: ISZERO 000001ab: PUSH2 0x01c7 000001ae: JUMPI 000001af: DUP1 000001b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001c5: AND 000001c6: SELFDESTRUCT 000001c7: JUMPDEST 000001c8: JUMPDEST 000001c9: JUMPDEST 000001ca: POP 000001cb: JUMP 000001cc: JUMPDEST 000001cd: NUMBER 000001ce: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db 000001ef: CALLER 000001f0: CALLVALUE 000001f1: TIMESTAMP 000001f2: PUSH1 0x40 000001f4: MLOAD 000001f5: DUP1 000001f6: DUP5 000001f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000020c: AND 0000020d: DUP2 0000020e: MSTORE 0000020f: PUSH1 0x20 00000211: ADD 00000212: DUP4 00000213: DUP2 00000214: MSTORE 00000215: PUSH1 0x20 00000217: ADD 00000218: DUP3 00000219: DUP2 0000021a: MSTORE 0000021b: PUSH1 0x20 0000021d: ADD 0000021e: SWAP4 0000021f: POP 00000220: POP 00000221: POP 00000222: POP 00000223: PUSH1 0x40 00000225: MLOAD 00000226: DUP1 00000227: SWAP2 00000228: SUB 00000229: SWAP1 0000022a: LOG2 0000022b: TIMESTAMP 0000022c: PUSH1 0x02 0000022e: PUSH1 0x00 00000230: POP 00000231: DUP2 00000232: SWAP1 00000233: SSTORE 00000234: POP 00000235: JUMPDEST 00000236: JUMP 00000237: JUMPDEST 00000238: PUSH1 0x00 0000023a: PUSH1 0x00 0000023c: SWAP1 0000023d: SLOAD 0000023e: SWAP1 0000023f: PUSH2 0x0100 00000242: EXP 00000243: SWAP1 00000244: DIV 00000245: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000025a: AND 0000025b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000270: AND 00000271: CALLER 00000272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000287: AND 00000288: EQ 00000289: ISZERO 0000028a: PUSH2 0x02d2 0000028d: JUMPI 0000028e: DUP1 0000028f: PUSH1 0x01 00000291: PUSH1 0x00 00000293: PUSH2 0x0100 00000296: EXP 00000297: DUP2 00000298: SLOAD 00000299: DUP2 0000029a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002af: MUL 000002b0: NOT 000002b1: AND 000002b2: SWAP1 000002b3: DUP4 000002b4: MUL 000002b5: OR 000002b6: SWAP1 000002b7: SSTORE 000002b8: POP 000002b9: PUSH1 0x01 000002bb: PUSH1 0x05 000002bd: PUSH1 0x00 000002bf: PUSH2 0x0100 000002c2: EXP 000002c3: DUP2 000002c4: SLOAD 000002c5: DUP2 000002c6: PUSH1 0xff 000002c8: MUL 000002c9: NOT 000002ca: AND 000002cb: SWAP1 000002cc: DUP4 000002cd: MUL 000002ce: OR 000002cf: SWAP1 000002d0: SSTORE 000002d1: POP 000002d2: JUMPDEST 000002d3: JUMPDEST 000002d4: POP 000002d5: JUMP 000002d6: JUMPDEST 000002d7: PUSH1 0x05 000002d9: PUSH1 0x00 000002db: SWAP1 000002dc: SLOAD 000002dd: SWAP1 000002de: PUSH2 0x0100 000002e1: EXP 000002e2: SWAP1 000002e3: DIV 000002e4: PUSH1 0xff 000002e6: AND 000002e7: ISZERO 000002e8: PUSH2 0x0358 000002eb: JUMPI 000002ec: PUSH1 0x01 000002ee: PUSH1 0x00 000002f0: SWAP1 000002f1: SLOAD 000002f2: SWAP1 000002f3: PUSH2 0x0100 000002f6: EXP 000002f7: SWAP1 000002f8: DIV 000002f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000030e: AND 0000030f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000324: AND 00000325: PUSH1 0x00 00000327: ADDRESS 00000328: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000033d: AND 0000033e: BALANCE 0000033f: PUSH1 0x40 00000341: MLOAD 00000342: DUP1 00000343: SWAP1 00000344: POP 00000345: PUSH1 0x00 00000347: PUSH1 0x40 00000349: MLOAD 0000034a: DUP1 0000034b: DUP4 0000034c: SUB 0000034d: DUP2 0000034e: DUP6 0000034f: DUP9 00000350: DUP9 00000351: CALL 00000352: SWAP4 00000353: POP 00000354: POP 00000355: POP 00000356: POP 00000357: POP 00000358: JUMPDEST 00000359: JUMPDEST 0000035a: 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 | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x3b88ee86b01dbec81d35ccf9e27a5ab6cdac070b201d8408fb5e9838ff2e79f8
call_targets:
0xe040f9e9c05ef5eb8324f195e75567ba4a4f8bda
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3b88ee86b01dbec81d35ccf9e27a5ab6cdac070b201d8408fb5e9838ff2e79f8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe040f9e9c05ef5eb8324f195e75567ba4a4f8bda"
],
"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": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd59933d5",
"selector": "0xd59933d5",
"calldata_variants": [
"0xd59933d5",
"0xd59933d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 849,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 343,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 625,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x3b88ee86b01dbec81d35ccf9e27a5ab6cdac070b201d8408fb5e9838ff2e79f8
call_targets:
0xe040f9e9c05ef5eb8324f195e75567ba4a4f8bda
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3b88ee86b01dbec81d35ccf9e27a5ab6cdac070b201d8408fb5e9838ff2e79f8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe040f9e9c05ef5eb8324f195e75567ba4a4f8bda"
],
"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": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd59933d5",
"selector": "0xd59933d5",
"calldata_variants": [
"0xd59933d5",
"0xd59933d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 849,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 343,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 625,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0x43a9ee15b613eac2971ea9d6a23848df3cb5110caead2608b0f5dd9e090d6187
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 8,
"trace_id": "0x43a9ee15b613eac2971ea9d6a23848df3cb5110caead2608b0f5dd9e090d6187",
"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": "0x9d735286",
"selector": "0x9d735286",
"calldata_variants": [
"0x9d735286",
"0x9d7352860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd59933d5",
"selector": "0xd59933d5",
"calldata_variants": [
"0xd59933d5",
"0xd59933d50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa89401a",
"selector": "0xfa89401a",
"calldata_variants": [
"0xfa89401a",
"0xfa89401a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 343,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 625,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 1
}
|