6d90360e-e548-46f2-9db4-cf4f4abdc2b1
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 |
|---|---|---|---|---|
| 31517 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77729 | artifact.fetch | failed | 1 / 3 | 2 weeks ago |
| 77730 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 77731 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 77732 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 77733 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 77734 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:187707] OpenAI Codex v0.77.0 (research preview)
[codex:187707] --------
[codex:187707] workdir: /tmp/codex-multi-wv1zxs1x
[codex:187707] model: gpt-5.2-codex
[codex:187707] provider: openai
[codex:187707] approval: never
[codex:187707] sandbox: read-only
[codex:187707] reasoning effort: xhigh
[codex:187707] reasoning summaries: auto
[codex:187707] session id: 019b86af-d75d-72c0-97a6-e240934ce807
[codex:187707] --------
[codex:187707] user
[codex:187707] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:187707]
[codex:187707] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:187707]
[codex:187707] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:187707] - Gas inefficiency, code quality, naming, or best practices
[codex:187707] - Theoretical vulnerabilities without a clear extraction path
[codex:187707] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:187707] - Front-running unless it enables theft beyond MEV
[codex:187707] - DoS, griefing, or issues that don't result in attacker profit
[codex:187707] - Missing events, view function issues, or informational findings
[codex:187707]
[codex:187707] HIGH-VALUE PATTERNS TO HUNT:
[codex:187707] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:187707] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:187707] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:187707] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:187707] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:187707] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:187707] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:187707] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:187707] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:187707]
[codex:187707] For each finding, you MUST provide:
[codex:187707] 1. Exact file and line numbers of vulnerable code
[codex:187707] 2. Step-by-step exploit transaction sequence
[codex:187707] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:187707]
[codex:187707] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:187707]
[codex:187707] Output MUST be valid JSON matching the provided schema.
[codex:187707] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:187707] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:187707] mcp startup: no servers
[codex:187707]
[codex:187707] thinking
[codex:187707] **Preparing to read instructions**
[codex:187707] exec
[codex:187707] /bin/bash -lc ls in /tmp/codex-multi-wv1zxs1x succeeded in 5ms:
[codex:187707] AUDIT_BUNDLE.txt
[codex:187707] codex-output-schema.json
[codex:187707] contracts
[codex:187707] exec
[codex:187707] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-wv1zxs1x succeeded in 5ms:
[codex:187707] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:187707]
[codex:187707] ================================================================================
[codex:187707] FILE: contracts/Contract.sol
[codex:187707] ================================================================================
[codex:187707] pragma solidity ^0.4.11;
[codex:187707]
[codex:187707]
[codex:187707] /**
[codex:187707] * @title Ownable
[codex:187707] * @dev The Ownable contract has an owner address, and provides basic authorization control
[codex:187707] * functions, this simplifies the implementation of "user permissions".
[codex:187707] */
[codex:187707] contract Ownable {
[codex:187707] address public owner;
[codex:187707]
[codex:187707] event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
[codex:187707] /**
[codex:187707] * @dev The Ownable constructor sets the original `owner` of the contract to the sender
[codex:187707] * account.
[codex:187707]
[codex:187707] thinking
[codex:187707] **Analyzing refund and close functions for exploits**
[codex:187707] codex
[codex:187707] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided contracts.","findings":[]}
[codex:187707] tokens used
[codex:187707] 6,670
[codex:187707] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided contracts.","findings":[]}
{
"codex": {
"ran_at": "2026-01-04T01:47:24.822087+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit paths found in the provided contracts.",
"raw_final": {
"summary": "No concrete, exploitable profit paths found in the provided contracts.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00ac 0000000a: JUMPI 0000000b: PUSH4 0xffffffff 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: PUSH1 0x00 00000030: CALLDATALOAD 00000031: DIV 00000032: AND 00000033: PUSH4 0x1f35bc40 00000038: DUP2 00000039: EQ 0000003a: PUSH2 0x00b1 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x41c0e1b5 00000044: EQ 00000045: PUSH2 0x00d2 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x521eb273 0000004f: EQ 00000050: PUSH2 0x00e7 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0x8c52dc41 0000005a: EQ 0000005b: PUSH2 0x0116 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0x8da5cb5b 00000065: EQ 00000066: PUSH2 0x012b 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0xc19d93fb 00000070: EQ 00000071: PUSH2 0x015a 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0xc74073a1 0000007b: EQ 0000007c: PUSH2 0x0191 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0xcb13cddb 00000086: EQ 00000087: PUSH2 0x01b2 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0xf2fde38b 00000091: EQ 00000092: PUSH2 0x01e3 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xf340fa01 0000009c: EQ 0000009d: PUSH2 0x0204 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xfa89401a 000000a7: EQ 000000a8: PUSH2 0x021a 000000ab: JUMPI 000000ac: JUMPDEST 000000ad: PUSH1 0x00 000000af: DUP1 000000b0: REVERT 000000b1: JUMPDEST 000000b2: CALLVALUE 000000b3: ISZERO 000000b4: PUSH2 0x00bc 000000b7: JUMPI 000000b8: PUSH1 0x00 000000ba: DUP1 000000bb: REVERT 000000bc: JUMPDEST 000000bd: PUSH2 0x00d0 000000c0: PUSH1 0x01 000000c2: PUSH1 0xa0 000000c4: PUSH1 0x02 000000c6: EXP 000000c7: SUB 000000c8: PUSH1 0x04 000000ca: CALLDATALOAD 000000cb: AND 000000cc: PUSH2 0x023b 000000cf: JUMP 000000d0: JUMPDEST 000000d1: STOP 000000d2: JUMPDEST 000000d3: CALLVALUE 000000d4: ISZERO 000000d5: PUSH2 0x00dd 000000d8: JUMPI 000000d9: PUSH1 0x00 000000db: DUP1 000000dc: REVERT 000000dd: JUMPDEST 000000de: PUSH2 0x00d0 000000e1: PUSH2 0x0298 000000e4: JUMP 000000e5: JUMPDEST 000000e6: STOP 000000e7: JUMPDEST 000000e8: CALLVALUE 000000e9: ISZERO 000000ea: PUSH2 0x00f2 000000ed: JUMPI 000000ee: PUSH1 0x00 000000f0: DUP1 000000f1: REVERT 000000f2: JUMPDEST 000000f3: PUSH2 0x00fa 000000f6: PUSH2 0x02e9 000000f9: JUMP 000000fa: JUMPDEST 000000fb: PUSH1 0x40 000000fd: MLOAD 000000fe: PUSH1 0x01 00000100: PUSH1 0xa0 00000102: PUSH1 0x02 00000104: EXP 00000105: SUB 00000106: SWAP1 00000107: SWAP2 00000108: AND 00000109: DUP2 0000010a: MSTORE 0000010b: PUSH1 0x20 0000010d: ADD 0000010e: PUSH1 0x40 00000110: MLOAD 00000111: DUP1 00000112: SWAP2 00000113: SUB 00000114: SWAP1 00000115: RETURN 00000116: JUMPDEST 00000117: CALLVALUE 00000118: ISZERO 00000119: PUSH2 0x0121 0000011c: JUMPI 0000011d: PUSH1 0x00 0000011f: DUP1 00000120: REVERT 00000121: JUMPDEST 00000122: PUSH2 0x00d0 00000125: PUSH2 0x0301 00000128: JUMP 00000129: JUMPDEST 0000012a: STOP 0000012b: JUMPDEST 0000012c: CALLVALUE 0000012d: ISZERO 0000012e: PUSH2 0x0136 00000131: JUMPI 00000132: PUSH1 0x00 00000134: DUP1 00000135: REVERT 00000136: JUMPDEST 00000137: PUSH2 0x00fa 0000013a: PUSH2 0x039d 0000013d: JUMP 0000013e: JUMPDEST 0000013f: PUSH1 0x40 00000141: MLOAD 00000142: PUSH1 0x01 00000144: PUSH1 0xa0 00000146: PUSH1 0x02 00000148: EXP 00000149: SUB 0000014a: SWAP1 0000014b: SWAP2 0000014c: AND 0000014d: DUP2 0000014e: MSTORE 0000014f: PUSH1 0x20 00000151: ADD 00000152: PUSH1 0x40 00000154: MLOAD 00000155: DUP1 00000156: SWAP2 00000157: SUB 00000158: SWAP1 00000159: RETURN 0000015a: JUMPDEST 0000015b: CALLVALUE 0000015c: ISZERO 0000015d: PUSH2 0x0165 00000160: JUMPI 00000161: PUSH1 0x00 00000163: DUP1 00000164: REVERT 00000165: JUMPDEST 00000166: PUSH2 0x016d 00000169: PUSH2 0x03ac 0000016c: JUMP 0000016d: JUMPDEST 0000016e: PUSH1 0x40 00000170: MLOAD 00000171: DUP1 00000172: DUP3 00000173: PUSH1 0x02 00000175: DUP2 00000176: GT 00000177: ISZERO 00000178: PUSH2 0x017d 0000017b: JUMPI 0000017c: INVALID 0000017d: JUMPDEST 0000017e: PUSH1 0xff 00000180: AND 00000181: DUP2 00000182: MSTORE 00000183: PUSH1 0x20 00000185: ADD 00000186: SWAP2 00000187: POP 00000188: POP 00000189: PUSH1 0x40 0000018b: MLOAD 0000018c: DUP1 0000018d: SWAP2 0000018e: SUB 0000018f: SWAP1 00000190: RETURN 00000191: JUMPDEST 00000192: CALLVALUE 00000193: ISZERO 00000194: PUSH2 0x019c 00000197: JUMPI 00000198: PUSH1 0x00 0000019a: DUP1 0000019b: REVERT 0000019c: JUMPDEST 0000019d: PUSH2 0x00d0 000001a0: PUSH1 0x01 000001a2: PUSH1 0xa0 000001a4: PUSH1 0x02 000001a6: EXP 000001a7: SUB 000001a8: PUSH1 0x04 000001aa: CALLDATALOAD 000001ab: AND 000001ac: PUSH2 0x03bc 000001af: JUMP 000001b0: JUMPDEST 000001b1: STOP 000001b2: JUMPDEST 000001b3: CALLVALUE 000001b4: ISZERO 000001b5: PUSH2 0x01bd 000001b8: JUMPI 000001b9: PUSH1 0x00 000001bb: DUP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: PUSH2 0x01d1 000001c1: PUSH1 0x01 000001c3: PUSH1 0xa0 000001c5: PUSH1 0x02 000001c7: EXP 000001c8: SUB 000001c9: PUSH1 0x04 000001cb: CALLDATALOAD 000001cc: AND 000001cd: PUSH2 0x0507 000001d0: JUMP 000001d1: JUMPDEST 000001d2: PUSH1 0x40 000001d4: MLOAD 000001d5: SWAP1 000001d6: DUP2 000001d7: MSTORE 000001d8: PUSH1 0x20 000001da: ADD 000001db: PUSH1 0x40 000001dd: MLOAD 000001de: DUP1 000001df: SWAP2 000001e0: SUB 000001e1: SWAP1 000001e2: RETURN 000001e3: JUMPDEST 000001e4: CALLVALUE 000001e5: ISZERO 000001e6: PUSH2 0x01ee 000001e9: JUMPI 000001ea: PUSH1 0x00 000001ec: DUP1 000001ed: REVERT 000001ee: JUMPDEST 000001ef: PUSH2 0x00d0 000001f2: PUSH1 0x01 000001f4: PUSH1 0xa0 000001f6: PUSH1 0x02 000001f8: EXP 000001f9: SUB 000001fa: PUSH1 0x04 000001fc: CALLDATALOAD 000001fd: AND 000001fe: PUSH2 0x0519 00000201: JUMP 00000202: JUMPDEST 00000203: STOP 00000204: JUMPDEST 00000205: PUSH2 0x00d0 00000208: PUSH1 0x01 0000020a: PUSH1 0xa0 0000020c: PUSH1 0x02 0000020e: EXP 0000020f: SUB 00000210: PUSH1 0x04 00000212: CALLDATALOAD 00000213: AND 00000214: PUSH2 0x05b2 00000217: JUMP 00000218: JUMPDEST 00000219: STOP 0000021a: JUMPDEST 0000021b: CALLVALUE 0000021c: ISZERO 0000021d: PUSH2 0x0225 00000220: JUMPI 00000221: PUSH1 0x00 00000223: DUP1 00000224: REVERT 00000225: JUMPDEST 00000226: PUSH2 0x00d0 00000229: PUSH1 0x01 0000022b: PUSH1 0xa0 0000022d: PUSH1 0x02 0000022f: EXP 00000230: SUB 00000231: PUSH1 0x04 00000233: CALLDATALOAD 00000234: AND 00000235: PUSH2 0x0639 00000238: JUMP 00000239: JUMPDEST 0000023a: STOP 0000023b: JUMPDEST 0000023c: PUSH1 0x00 0000023e: SLOAD 0000023f: CALLER 00000240: PUSH1 0x01 00000242: PUSH1 0xa0 00000244: PUSH1 0x02 00000246: EXP 00000247: SUB 00000248: SWAP1 00000249: DUP2 0000024a: AND 0000024b: SWAP2 0000024c: AND 0000024d: EQ 0000024e: PUSH2 0x0256 00000251: JUMPI 00000252: PUSH1 0x00 00000254: DUP1 00000255: REVERT 00000256: JUMPDEST 00000257: PUSH1 0x01 00000259: PUSH1 0xa0 0000025b: PUSH1 0x02 0000025d: EXP 0000025e: SUB 0000025f: DUP2 00000260: AND 00000261: ISZERO 00000262: ISZERO 00000263: PUSH2 0x026b 00000266: JUMPI 00000267: PUSH1 0x00 00000269: DUP1 0000026a: REVERT 0000026b: JUMPDEST 0000026c: PUSH1 0x02 0000026e: DUP1 0000026f: SLOAD 00000270: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000285: NOT 00000286: AND 00000287: PUSH1 0x01 00000289: PUSH1 0xa0 0000028b: PUSH1 0x02 0000028d: EXP 0000028e: SUB 0000028f: DUP4 00000290: AND 00000291: OR 00000292: SWAP1 00000293: SSTORE 00000294: JUMPDEST 00000295: JUMPDEST 00000296: POP 00000297: JUMP 00000298: JUMPDEST 00000299: PUSH1 0x00 0000029b: SLOAD 0000029c: CALLER 0000029d: PUSH1 0x01 0000029f: PUSH1 0xa0 000002a1: PUSH1 0x02 000002a3: EXP 000002a4: SUB 000002a5: SWAP1 000002a6: DUP2 000002a7: AND 000002a8: SWAP2 000002a9: AND 000002aa: EQ 000002ab: PUSH2 0x02b3 000002ae: JUMPI 000002af: PUSH1 0x00 000002b1: DUP1 000002b2: REVERT 000002b3: JUMPDEST 000002b4: PUSH1 0x02 000002b6: JUMPDEST 000002b7: PUSH1 0x00 000002b9: SLOAD 000002ba: PUSH1 0xa0 000002bc: PUSH1 0x02 000002be: EXP 000002bf: SWAP1 000002c0: DIV 000002c1: PUSH1 0xff 000002c3: AND 000002c4: PUSH1 0x02 000002c6: DUP2 000002c7: GT 000002c8: ISZERO 000002c9: PUSH2 0x02ce 000002cc: JUMPI 000002cd: INVALID 000002ce: JUMPDEST 000002cf: EQ 000002d0: PUSH2 0x02d8 000002d3: JUMPI 000002d4: PUSH1 0x00 000002d6: DUP1 000002d7: REVERT 000002d8: JUMPDEST 000002d9: PUSH1 0x00 000002db: SLOAD 000002dc: PUSH1 0x01 000002de: PUSH1 0xa0 000002e0: PUSH1 0x02 000002e2: EXP 000002e3: SUB 000002e4: AND 000002e5: SELFDESTRUCT 000002e6: JUMPDEST 000002e7: JUMPDEST 000002e8: JUMP 000002e9: JUMPDEST 000002ea: PUSH20 0x02d408bc203921646eca69b555524df3c7f3a8d7 000002ff: DUP2 00000300: JUMP 00000301: JUMPDEST 00000302: PUSH1 0x02 00000304: SLOAD 00000305: CALLER 00000306: PUSH1 0x01 00000308: PUSH1 0xa0 0000030a: PUSH1 0x02 0000030c: EXP 0000030d: SUB 0000030e: SWAP1 0000030f: DUP2 00000310: AND 00000311: SWAP2 00000312: AND 00000313: EQ 00000314: PUSH2 0x031c 00000317: JUMPI 00000318: PUSH1 0x00 0000031a: DUP1 0000031b: REVERT 0000031c: JUMPDEST 0000031d: PUSH1 0x00 0000031f: JUMPDEST 00000320: PUSH1 0x00 00000322: SLOAD 00000323: PUSH1 0xa0 00000325: PUSH1 0x02 00000327: EXP 00000328: SWAP1 00000329: DIV 0000032a: PUSH1 0xff 0000032c: AND 0000032d: PUSH1 0x02 0000032f: DUP2 00000330: GT 00000331: ISZERO 00000332: PUSH2 0x0337 00000335: JUMPI 00000336: INVALID 00000337: JUMPDEST 00000338: EQ 00000339: PUSH2 0x0341 0000033c: JUMPI 0000033d: PUSH1 0x00 0000033f: DUP1 00000340: REVERT 00000341: JUMPDEST 00000342: PUSH1 0x00 00000344: DUP1 00000345: SLOAD 00000346: PUSH1 0x01 00000348: SWAP2 00000349: SWAP1 0000034a: PUSH21 0xff0000000000000000000000000000000000000000 00000360: NOT 00000361: AND 00000362: PUSH1 0xa0 00000364: PUSH1 0x02 00000366: EXP 00000367: DUP4 00000368: JUMPDEST 00000369: MUL 0000036a: OR 0000036b: SWAP1 0000036c: SSTORE 0000036d: POP 0000036e: PUSH32 0x599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89 0000038f: PUSH1 0x40 00000391: MLOAD 00000392: PUSH1 0x40 00000394: MLOAD 00000395: DUP1 00000396: SWAP2 00000397: SUB 00000398: SWAP1 00000399: LOG1 0000039a: JUMPDEST 0000039b: JUMPDEST 0000039c: JUMP 0000039d: JUMPDEST 0000039e: PUSH1 0x00 000003a0: SLOAD 000003a1: PUSH1 0x01 000003a3: PUSH1 0xa0 000003a5: PUSH1 0x02 000003a7: EXP 000003a8: SUB 000003a9: AND 000003aa: DUP2 000003ab: JUMP 000003ac: JUMPDEST 000003ad: PUSH1 0x00 000003af: SLOAD 000003b0: PUSH1 0xa0 000003b2: PUSH1 0x02 000003b4: EXP 000003b5: SWAP1 000003b6: DIV 000003b7: PUSH1 0xff 000003b9: AND 000003ba: DUP2 000003bb: JUMP 000003bc: JUMPDEST 000003bd: PUSH1 0x02 000003bf: SLOAD 000003c0: PUSH1 0x00 000003c2: SWAP1 000003c3: CALLER 000003c4: PUSH1 0x01 000003c6: PUSH1 0xa0 000003c8: PUSH1 0x02 000003ca: EXP 000003cb: SUB 000003cc: SWAP1 000003cd: DUP2 000003ce: AND 000003cf: SWAP2 000003d0: AND 000003d1: EQ 000003d2: PUSH2 0x03da 000003d5: JUMPI 000003d6: PUSH1 0x00 000003d8: DUP1 000003d9: REVERT 000003da: JUMPDEST 000003db: PUSH1 0x01 000003dd: PUSH1 0xa0 000003df: PUSH1 0x02 000003e1: EXP 000003e2: SUB 000003e3: DUP3 000003e4: AND 000003e5: ISZERO 000003e6: ISZERO 000003e7: PUSH2 0x03ef 000003ea: JUMPI 000003eb: PUSH1 0x00 000003ed: DUP1 000003ee: REVERT 000003ef: JUMPDEST 000003f0: PUSH1 0x00 000003f2: JUMPDEST 000003f3: PUSH1 0x00 000003f5: SLOAD 000003f6: PUSH1 0xa0 000003f8: PUSH1 0x02 000003fa: EXP 000003fb: SWAP1 000003fc: DIV 000003fd: PUSH1 0xff 000003ff: AND 00000400: PUSH1 0x02 00000402: DUP2 00000403: GT 00000404: ISZERO 00000405: PUSH2 0x040a 00000408: JUMPI 00000409: INVALID 0000040a: JUMPDEST 0000040b: EQ 0000040c: PUSH2 0x0414 0000040f: JUMPI 00000410: PUSH1 0x00 00000412: DUP1 00000413: REVERT 00000414: JUMPDEST 00000415: PUSH1 0x00 00000417: DUP1 00000418: SLOAD 00000419: PUSH1 0x02 0000041b: SWAP2 0000041c: SWAP1 0000041d: PUSH21 0xff0000000000000000000000000000000000000000 00000433: NOT 00000434: AND 00000435: PUSH1 0xa0 00000437: PUSH1 0x02 00000439: EXP 0000043a: DUP4 0000043b: JUMPDEST 0000043c: MUL 0000043d: OR 0000043e: SWAP1 0000043f: SSTORE 00000440: POP 00000441: PUSH32 0x1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a 00000462: PUSH1 0x40 00000464: MLOAD 00000465: PUSH1 0x40 00000467: MLOAD 00000468: DUP1 00000469: SWAP2 0000046a: SUB 0000046b: SWAP1 0000046c: LOG1 0000046d: PUSH2 0x0487 00000470: PUSH1 0x01 00000472: PUSH1 0xa0 00000474: PUSH1 0x02 00000476: EXP 00000477: SUB 00000478: ADDRESS 00000479: AND 0000047a: BALANCE 0000047b: PUSH1 0x64 0000047d: PUSH4 0xffffffff 00000482: PUSH2 0x06eb 00000485: AND 00000486: JUMP 00000487: JUMPDEST 00000488: SWAP1 00000489: POP 0000048a: PUSH1 0x01 0000048c: PUSH1 0xa0 0000048e: PUSH1 0x02 00000490: EXP 00000491: SUB 00000492: DUP3 00000493: AND 00000494: DUP2 00000495: ISZERO 00000496: PUSH2 0x08fc 00000499: MUL 0000049a: DUP3 0000049b: PUSH1 0x40 0000049d: MLOAD 0000049e: PUSH1 0x00 000004a0: PUSH1 0x40 000004a2: MLOAD 000004a3: DUP1 000004a4: DUP4 000004a5: SUB 000004a6: DUP2 000004a7: DUP6 000004a8: DUP9 000004a9: DUP9 000004aa: CALL 000004ab: SWAP4 000004ac: POP 000004ad: POP 000004ae: POP 000004af: POP 000004b0: ISZERO 000004b1: ISZERO 000004b2: PUSH2 0x04ba 000004b5: JUMPI 000004b6: PUSH1 0x00 000004b8: DUP1 000004b9: REVERT 000004ba: JUMPDEST 000004bb: PUSH20 0x02d408bc203921646eca69b555524df3c7f3a8d7 000004d0: ADDRESS 000004d1: PUSH1 0x01 000004d3: PUSH1 0xa0 000004d5: PUSH1 0x02 000004d7: EXP 000004d8: SUB 000004d9: AND 000004da: BALANCE 000004db: DUP1 000004dc: ISZERO 000004dd: PUSH2 0x08fc 000004e0: MUL 000004e1: SWAP1 000004e2: PUSH1 0x40 000004e4: MLOAD 000004e5: PUSH1 0x00 000004e7: PUSH1 0x40 000004e9: MLOAD 000004ea: DUP1 000004eb: DUP4 000004ec: SUB 000004ed: DUP2 000004ee: DUP6 000004ef: DUP9 000004f0: DUP9 000004f1: CALL 000004f2: SWAP4 000004f3: POP 000004f4: POP 000004f5: POP 000004f6: POP 000004f7: ISZERO 000004f8: ISZERO 000004f9: PUSH2 0x0501 000004fc: JUMPI 000004fd: PUSH1 0x00 000004ff: DUP1 00000500: REVERT 00000501: JUMPDEST 00000502: JUMPDEST 00000503: JUMPDEST 00000504: POP 00000505: POP 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH1 0x01 0000050a: PUSH1 0x20 0000050c: MSTORE 0000050d: PUSH1 0x00 0000050f: SWAP1 00000510: DUP2 00000511: MSTORE 00000512: PUSH1 0x40 00000514: SWAP1 00000515: KECCAK256 00000516: SLOAD 00000517: DUP2 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH1 0x00 0000051c: SLOAD 0000051d: CALLER 0000051e: PUSH1 0x01 00000520: PUSH1 0xa0 00000522: PUSH1 0x02 00000524: EXP 00000525: SUB 00000526: SWAP1 00000527: DUP2 00000528: AND 00000529: SWAP2 0000052a: AND 0000052b: EQ 0000052c: PUSH2 0x0534 0000052f: JUMPI 00000530: PUSH1 0x00 00000532: DUP1 00000533: REVERT 00000534: JUMPDEST 00000535: PUSH1 0x01 00000537: PUSH1 0xa0 00000539: PUSH1 0x02 0000053b: EXP 0000053c: SUB 0000053d: DUP2 0000053e: AND 0000053f: ISZERO 00000540: ISZERO 00000541: PUSH2 0x0549 00000544: JUMPI 00000545: PUSH1 0x00 00000547: DUP1 00000548: REVERT 00000549: JUMPDEST 0000054a: PUSH1 0x00 0000054c: SLOAD 0000054d: PUSH1 0x01 0000054f: PUSH1 0xa0 00000551: PUSH1 0x02 00000553: EXP 00000554: SUB 00000555: DUP1 00000556: DUP4 00000557: AND 00000558: SWAP2 00000559: AND 0000055a: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000057b: PUSH1 0x40 0000057d: MLOAD 0000057e: PUSH1 0x40 00000580: MLOAD 00000581: DUP1 00000582: SWAP2 00000583: SUB 00000584: SWAP1 00000585: LOG3 00000586: PUSH1 0x00 00000588: DUP1 00000589: SLOAD 0000058a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000059f: NOT 000005a0: AND 000005a1: PUSH1 0x01 000005a3: PUSH1 0xa0 000005a5: PUSH1 0x02 000005a7: EXP 000005a8: SUB 000005a9: DUP4 000005aa: AND 000005ab: OR 000005ac: SWAP1 000005ad: SSTORE 000005ae: JUMPDEST 000005af: JUMPDEST 000005b0: POP 000005b1: JUMP 000005b2: JUMPDEST 000005b3: PUSH1 0x02 000005b5: SLOAD 000005b6: CALLER 000005b7: PUSH1 0x01 000005b9: PUSH1 0xa0 000005bb: PUSH1 0x02 000005bd: EXP 000005be: SUB 000005bf: SWAP1 000005c0: DUP2 000005c1: AND 000005c2: SWAP2 000005c3: AND 000005c4: EQ 000005c5: PUSH2 0x05cd 000005c8: JUMPI 000005c9: PUSH1 0x00 000005cb: DUP1 000005cc: REVERT 000005cd: JUMPDEST 000005ce: PUSH1 0x00 000005d0: JUMPDEST 000005d1: PUSH1 0x00 000005d3: SLOAD 000005d4: PUSH1 0xa0 000005d6: PUSH1 0x02 000005d8: EXP 000005d9: SWAP1 000005da: DIV 000005db: PUSH1 0xff 000005dd: AND 000005de: PUSH1 0x02 000005e0: DUP2 000005e1: GT 000005e2: ISZERO 000005e3: PUSH2 0x05e8 000005e6: JUMPI 000005e7: INVALID 000005e8: JUMPDEST 000005e9: EQ 000005ea: PUSH2 0x05f2 000005ed: JUMPI 000005ee: PUSH1 0x00 000005f0: DUP1 000005f1: REVERT 000005f2: JUMPDEST 000005f3: PUSH1 0x01 000005f5: PUSH1 0xa0 000005f7: PUSH1 0x02 000005f9: EXP 000005fa: SUB 000005fb: DUP2 000005fc: AND 000005fd: PUSH1 0x00 000005ff: SWAP1 00000600: DUP2 00000601: MSTORE 00000602: PUSH1 0x01 00000604: PUSH1 0x20 00000606: MSTORE 00000607: PUSH1 0x40 00000609: SWAP1 0000060a: KECCAK256 0000060b: SLOAD 0000060c: PUSH2 0x061b 0000060f: SWAP1 00000610: CALLVALUE 00000611: PUSH4 0xffffffff 00000616: PUSH2 0x0707 00000619: AND 0000061a: JUMP 0000061b: JUMPDEST 0000061c: PUSH1 0x01 0000061e: PUSH1 0xa0 00000620: PUSH1 0x02 00000622: EXP 00000623: SUB 00000624: DUP3 00000625: AND 00000626: PUSH1 0x00 00000628: SWAP1 00000629: DUP2 0000062a: MSTORE 0000062b: PUSH1 0x01 0000062d: PUSH1 0x20 0000062f: MSTORE 00000630: PUSH1 0x40 00000632: SWAP1 00000633: KECCAK256 00000634: SSTORE 00000635: JUMPDEST 00000636: JUMPDEST 00000637: POP 00000638: JUMP 00000639: JUMPDEST 0000063a: PUSH1 0x00 0000063c: PUSH1 0x01 0000063e: JUMPDEST 0000063f: PUSH1 0x00 00000641: SLOAD 00000642: PUSH1 0xa0 00000644: PUSH1 0x02 00000646: EXP 00000647: SWAP1 00000648: DIV 00000649: PUSH1 0xff 0000064b: AND 0000064c: PUSH1 0x02 0000064e: DUP2 0000064f: GT 00000650: ISZERO 00000651: PUSH2 0x0656 00000654: JUMPI 00000655: INVALID 00000656: JUMPDEST 00000657: EQ 00000658: PUSH2 0x0660 0000065b: JUMPI 0000065c: PUSH1 0x00 0000065e: DUP1 0000065f: REVERT 00000660: JUMPDEST 00000661: POP 00000662: PUSH1 0x01 00000664: PUSH1 0xa0 00000666: PUSH1 0x02 00000668: EXP 00000669: SUB 0000066a: DUP2 0000066b: AND 0000066c: PUSH1 0x00 0000066e: DUP2 0000066f: DUP2 00000670: MSTORE 00000671: PUSH1 0x01 00000673: PUSH1 0x20 00000675: MSTORE 00000676: PUSH1 0x40 00000678: DUP1 00000679: DUP3 0000067a: KECCAK256 0000067b: DUP1 0000067c: SLOAD 0000067d: SWAP3 0000067e: SWAP1 0000067f: SSTORE 00000680: SWAP1 00000681: SWAP2 00000682: SWAP1 00000683: DUP3 00000684: ISZERO 00000685: PUSH2 0x08fc 00000688: MUL 00000689: SWAP1 0000068a: DUP4 0000068b: SWAP1 0000068c: MLOAD 0000068d: PUSH1 0x00 0000068f: PUSH1 0x40 00000691: MLOAD 00000692: DUP1 00000693: DUP4 00000694: SUB 00000695: DUP2 00000696: DUP6 00000697: DUP9 00000698: DUP9 00000699: CALL 0000069a: SWAP4 0000069b: POP 0000069c: POP 0000069d: POP 0000069e: POP 0000069f: ISZERO 000006a0: ISZERO 000006a1: PUSH2 0x06a9 000006a4: JUMPI 000006a5: PUSH1 0x00 000006a7: DUP1 000006a8: REVERT 000006a9: JUMPDEST 000006aa: DUP2 000006ab: PUSH1 0x01 000006ad: PUSH1 0xa0 000006af: PUSH1 0x02 000006b1: EXP 000006b2: SUB 000006b3: AND 000006b4: PUSH32 0xd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651 000006d5: DUP3 000006d6: PUSH1 0x40 000006d8: MLOAD 000006d9: SWAP1 000006da: DUP2 000006db: MSTORE 000006dc: PUSH1 0x20 000006de: ADD 000006df: PUSH1 0x40 000006e1: MLOAD 000006e2: DUP1 000006e3: SWAP2 000006e4: SUB 000006e5: SWAP1 000006e6: LOG2 000006e7: JUMPDEST 000006e8: POP 000006e9: POP 000006ea: JUMP 000006eb: JUMPDEST 000006ec: PUSH1 0x00 000006ee: DUP1 000006ef: DUP3 000006f0: DUP5 000006f1: DUP2 000006f2: ISZERO 000006f3: ISZERO 000006f4: PUSH2 0x06f9 000006f7: JUMPI 000006f8: INVALID 000006f9: JUMPDEST 000006fa: DIV 000006fb: SWAP1 000006fc: POP 000006fd: DUP1 000006fe: SWAP2 000006ff: POP 00000700: JUMPDEST 00000701: POP 00000702: SWAP3 00000703: SWAP2 00000704: POP 00000705: POP 00000706: JUMP 00000707: JUMPDEST 00000708: PUSH1 0x00 0000070a: DUP3 0000070b: DUP3 0000070c: ADD 0000070d: DUP4 0000070e: DUP2 0000070f: LT 00000710: ISZERO 00000711: PUSH2 0x0719 00000714: JUMPI 00000715: PUSH1 0x00 00000717: DUP1 00000718: REVERT 00000719: JUMPDEST 0000071a: DUP1 0000071b: SWAP2 0000071c: POP 0000071d: JUMPDEST 0000071e: POP 0000071f: SWAP3 00000720: SWAP2 00000721: POP 00000722: POP 00000723: JUMP 00000724: STOP 00000725: LOG1 00000726: PUSH6 0x627a7a723058 0000072d: KECCAK256 0000072e: SHL 0000072f: UNKNOWN(0x23) 00000730: EXTCODECOPY 00000731: UNKNOWN(0xAB) 00000732: UNKNOWN(0xB4) 00000733: UNKNOWN(0xBB) 00000734: PUSH12 0x94b6445db94febb7e150e9be 00000741: MUL 00000742: PUSH11 0x77d340b0a4d5a33692ecbc 0000074e: STOP 0000074f: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x3a02b508c9257df2b6f8a919415f0e5431ff9a28f319142bede81f8eb864e2e7
call_targets:
0x93519cc1a51ac56cf2daa8aaafcd4073f49a19d8
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3a02b508c9257df2b6f8a919415f0e5431ff9a28f319142bede81f8eb864e2e7",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x93519cc1a51ac56cf2daa8aaafcd4073f49a19d8"
],
"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": "0x1f35bc40",
"selector": "0x1f35bc40",
"calldata_variants": [
"0x1f35bc40",
"0x1f35bc400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41c0e1b5",
"selector": "0x41c0e1b5",
"calldata_variants": [
"0x41c0e1b5",
"0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x521eb273",
"selector": "0x521eb273",
"calldata_variants": [
"0x521eb273",
"0x521eb2730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8c52dc41",
"selector": "0x8c52dc41",
"calldata_variants": [
"0x8c52dc41",
"0x8c52dc410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc19d93fb",
"selector": "0xc19d93fb",
"calldata_variants": [
"0xc19d93fb",
"0xc19d93fb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc74073a1",
"selector": "0xc74073a1",
"calldata_variants": [
"0xc74073a1",
"0xc74073a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb13cddb",
"selector": "0xcb13cddb",
"calldata_variants": [
"0xcb13cddb",
"0xcb13cddb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1194,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1265,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1689,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x3a02b508c9257df2b6f8a919415f0e5431ff9a28f319142bede81f8eb864e2e7
call_targets:
0x93519cc1a51ac56cf2daa8aaafcd4073f49a19d8
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3a02b508c9257df2b6f8a919415f0e5431ff9a28f319142bede81f8eb864e2e7",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x93519cc1a51ac56cf2daa8aaafcd4073f49a19d8"
],
"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": "0x1f35bc40",
"selector": "0x1f35bc40",
"calldata_variants": [
"0x1f35bc40",
"0x1f35bc400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41c0e1b5",
"selector": "0x41c0e1b5",
"calldata_variants": [
"0x41c0e1b5",
"0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x521eb273",
"selector": "0x521eb273",
"calldata_variants": [
"0x521eb273",
"0x521eb2730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8c52dc41",
"selector": "0x8c52dc41",
"calldata_variants": [
"0x8c52dc41",
"0x8c52dc410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc19d93fb",
"selector": "0xc19d93fb",
"calldata_variants": [
"0xc19d93fb",
"0xc19d93fb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc74073a1",
"selector": "0xc74073a1",
"calldata_variants": [
"0xc74073a1",
"0xc74073a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb13cddb",
"selector": "0xcb13cddb",
"calldata_variants": [
"0xcb13cddb",
"0xcb13cddb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1194,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1265,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1689,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0x60222f21615641c1ed9891ea3a0e3b684037ba076eb95e64598ec2950d8cb149
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 22,
"trace_id": "0x60222f21615641c1ed9891ea3a0e3b684037ba076eb95e64598ec2950d8cb149",
"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": "0x1f35bc40",
"selector": "0x1f35bc40",
"calldata_variants": [
"0x1f35bc40",
"0x1f35bc400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41c0e1b5",
"selector": "0x41c0e1b5",
"calldata_variants": [
"0x41c0e1b5",
"0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x521eb273",
"selector": "0x521eb273",
"calldata_variants": [
"0x521eb273",
"0x521eb2730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8c52dc41",
"selector": "0x8c52dc41",
"calldata_variants": [
"0x8c52dc41",
"0x8c52dc410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc19d93fb",
"selector": "0xc19d93fb",
"calldata_variants": [
"0xc19d93fb",
"0xc19d93fb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc74073a1",
"selector": "0xc74073a1",
"calldata_variants": [
"0xc74073a1",
"0xc74073a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb13cddb",
"selector": "0xcb13cddb",
"calldata_variants": [
"0xcb13cddb",
"0xcb13cddb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|