8866a815-e3d2-4518-9561-14bc54f9c0fe
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 |
|---|---|---|---|---|
| 30488 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103787 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 103788 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103789 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103790 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103791 | detector.run | complete | 1 / 3 | 1 week ago |
| 103792 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1427539] OpenAI Codex v0.77.0 (research preview)
[codex:1427539] --------
[codex:1427539] workdir: /tmp/codex-multi-u7de3x83
[codex:1427539] model: gpt-5.2-codex
[codex:1427539] provider: openai
[codex:1427539] approval: never
[codex:1427539] sandbox: read-only
[codex:1427539] reasoning effort: xhigh
[codex:1427539] reasoning summaries: auto
[codex:1427539] session id: 019b6a35-4687-7261-a448-6afb5b66156a
[codex:1427539] --------
[codex:1427539] user
[codex:1427539] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1427539] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1427539] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1427539]
[codex:1427539] Scope rules:
[codex:1427539] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1427539] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1427539]
[codex:1427539] Output MUST be valid JSON matching the provided schema.
[codex:1427539] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1427539] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1427539]
[codex:1427539] Output constraints (IMPORTANT):
[codex:1427539] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1427539] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1427539] mcp startup: no servers
[codex:1427539]
[codex:1427539] thinking
[codex:1427539] **Planning to examine AUDIT_BUNDLE.txt**
[codex:1427539] exec
[codex:1427539] /bin/bash -lc ls in /tmp/codex-multi-u7de3x83 succeeded in 5ms:
[codex:1427539] AUDIT_BUNDLE.txt
[codex:1427539] codex-output-schema.json
[codex:1427539] contracts
[codex:1427539]
[codex:1427539] thinking
[codex:1427539] **Reading AUDIT_BUNDLE.txt file**
[codex:1427539] exec
[codex:1427539] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-u7de3x83 succeeded in 8ms:
[codex:1427539] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1427539]
[codex:1427539] ================================================================================
[codex:1427539] FILE: contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1427539] ================================================================================
[codex:1427539] // SPDX-License-Identifier: MIT
[codex:1427539] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1427539]
[codex:1427539] pragma solidity ^0.8.20;
[codex:1427539]
[codex:1427539] import {Context} from "../utils/Context.sol";
[codex:1427539]
[codex:1427539] /**
[codex:1427539] * @dev Contract module which provides a basic access control mechanism, where
[codex:1427539] * there is an account (an owner) that can be granted exclusive access to
[codex:1427539] * specific functions.
[codex:1427539] *
[codex:1427539] * The initial owner is set to the address provided by the deployer. This can
[codex:1427539] * later be changed with {transferOwnership}.
[codex:1427539] *
[codex:1427539]
[codex:1427539] thinking
[codex:1427539] **Analyzing WETHRedeem.sol for vulnerabilities**
[codex:1427539] codex
[codex:1427539] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
[codex:1427539] tokens used
[codex:1427539] 19,618
[codex:1427539] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
{
"codex": {
"ran_at": "2025-12-29T13:04:34.171140+00:00",
"returncode": 0
},
"summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
"raw_final": {
"summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: DUP1 00000003: PUSH1 0x40 00000005: MSTORE 00000006: PUSH1 0x04 00000008: CALLDATASIZE 00000009: LT 0000000a: ISZERO 0000000b: PUSH2 0x0012 0000000e: JUMPI 0000000f: PUSH0 00000010: DUP1 00000011: REVERT 00000012: JUMPDEST 00000013: PUSH0 00000014: CALLDATALOAD 00000015: PUSH1 0xe0 00000017: SHR 00000018: SWAP1 00000019: DUP2 0000001a: PUSH4 0x29dcb0cf 0000001f: EQ 00000020: PUSH2 0x06d3 00000023: JUMPI 00000024: POP 00000025: DUP1 00000026: PUSH4 0x2e7ba6ef 0000002b: EQ 0000002c: PUSH2 0x0428 0000002f: JUMPI 00000030: DUP1 00000031: PUSH4 0x2eb4a7ab 00000036: EQ 00000037: PUSH2 0x03ee 0000003a: JUMPI 0000003b: DUP1 0000003c: PUSH4 0x715018a6 00000041: EQ 00000042: PUSH2 0x0393 00000045: JUMPI 00000046: DUP1 00000047: PUSH4 0x83c44a66 0000004c: EQ 0000004d: PUSH2 0x0371 00000050: JUMPI 00000051: DUP1 00000052: PUSH4 0x8da5cb5b 00000057: EQ 00000058: PUSH2 0x0349 0000005b: JUMPI 0000005c: DUP1 0000005d: PUSH4 0x9e34070f 00000062: EQ 00000063: PUSH2 0x0308 00000066: JUMPI 00000067: DUP1 00000068: PUSH4 0xad5c4648 0000006d: EQ 0000006e: PUSH2 0x02c4 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xdb2e21bc 00000078: EQ 00000079: PUSH2 0x0118 0000007c: JUMPI 0000007d: PUSH4 0xf2fde38b 00000082: EQ 00000083: PUSH2 0x008a 00000086: JUMPI 00000087: PUSH0 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: CALLVALUE 0000008c: PUSH2 0x0114 0000008f: JUMPI 00000090: PUSH1 0x20 00000092: CALLDATASIZE 00000093: PUSH1 0x03 00000095: NOT 00000096: ADD 00000097: SLT 00000098: PUSH2 0x0114 0000009b: JUMPI 0000009c: PUSH1 0x04 0000009e: CALLDATALOAD 0000009f: PUSH1 0x01 000000a1: PUSH1 0x01 000000a3: PUSH1 0xa0 000000a5: SHL 000000a6: SUB 000000a7: DUP2 000000a8: AND 000000a9: SWAP1 000000aa: DUP2 000000ab: SWAP1 000000ac: SUB 000000ad: PUSH2 0x0114 000000b0: JUMPI 000000b1: PUSH2 0x00b8 000000b4: PUSH2 0x07a8 000000b7: JUMP 000000b8: JUMPDEST 000000b9: DUP1 000000ba: ISZERO 000000bb: PUSH2 0x0101 000000be: JUMPI 000000bf: PUSH1 0x01 000000c1: DUP1 000000c2: SLOAD 000000c3: PUSH1 0x01 000000c5: PUSH1 0x01 000000c7: PUSH1 0xa0 000000c9: SHL 000000ca: SUB 000000cb: NOT 000000cc: DUP2 000000cd: AND 000000ce: DUP4 000000cf: OR 000000d0: SWAP1 000000d1: SWAP2 000000d2: SSTORE 000000d3: PUSH1 0x01 000000d5: PUSH1 0x01 000000d7: PUSH1 0xa0 000000d9: SHL 000000da: SUB 000000db: AND 000000dc: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000000fd: PUSH0 000000fe: DUP1 000000ff: LOG3 00000100: STOP 00000101: JUMPDEST 00000102: PUSH4 0x1e4fbdf7 00000107: PUSH1 0xe0 00000109: SHL 0000010a: PUSH0 0000010b: MSTORE 0000010c: PUSH0 0000010d: PUSH1 0x04 0000010f: MSTORE 00000110: PUSH1 0x24 00000112: PUSH0 00000113: REVERT 00000114: JUMPDEST 00000115: PUSH0 00000116: DUP1 00000117: REVERT 00000118: JUMPDEST 00000119: CALLVALUE 0000011a: PUSH2 0x0114 0000011d: JUMPI 0000011e: PUSH0 0000011f: CALLDATASIZE 00000120: PUSH1 0x03 00000122: NOT 00000123: ADD 00000124: SLT 00000125: PUSH2 0x0114 00000128: JUMPI 00000129: PUSH2 0x0130 0000012c: PUSH2 0x07a8 0000012f: JUMP 00000130: JUMPDEST 00000131: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b 00000152: TIMESTAMP 00000153: LT 00000154: PUSH2 0x02b5 00000157: JUMPI 00000158: PUSH1 0x40 0000015a: MLOAD 0000015b: PUSH4 0x70a08231 00000160: PUSH1 0xe0 00000162: SHL 00000163: DUP2 00000164: MSTORE 00000165: ADDRESS 00000166: PUSH1 0x04 00000168: DUP3 00000169: ADD 0000016a: MSTORE 0000016b: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000018c: PUSH1 0x01 0000018e: PUSH1 0x01 00000190: PUSH1 0xa0 00000192: SHL 00000193: SUB 00000194: AND 00000195: PUSH1 0x20 00000197: DUP3 00000198: PUSH1 0x24 0000019a: DUP2 0000019b: DUP5 0000019c: GAS 0000019d: STATICCALL 0000019e: SWAP2 0000019f: DUP3 000001a0: ISZERO 000001a1: PUSH2 0x0276 000001a4: JUMPI 000001a5: PUSH0 000001a6: SWAP3 000001a7: PUSH2 0x0281 000001aa: JUMPI 000001ab: JUMPDEST 000001ac: POP 000001ad: DUP2 000001ae: PUSH2 0x01b3 000001b1: JUMPI 000001b2: STOP 000001b3: JUMPDEST 000001b4: PUSH1 0x01 000001b6: SLOAD 000001b7: PUSH1 0x40 000001b9: MLOAD 000001ba: PUSH4 0xa9059cbb 000001bf: PUSH1 0xe0 000001c1: SHL 000001c2: DUP2 000001c3: MSTORE 000001c4: PUSH1 0x01 000001c6: PUSH1 0x01 000001c8: PUSH1 0xa0 000001ca: SHL 000001cb: SUB 000001cc: SWAP1 000001cd: SWAP2 000001ce: AND 000001cf: PUSH1 0x04 000001d1: DUP3 000001d2: ADD 000001d3: MSTORE 000001d4: PUSH1 0x24 000001d6: DUP2 000001d7: ADD 000001d8: DUP4 000001d9: SWAP1 000001da: MSTORE 000001db: SWAP1 000001dc: PUSH1 0x20 000001de: SWAP1 000001df: DUP3 000001e0: SWAP1 000001e1: PUSH1 0x44 000001e3: SWAP1 000001e4: DUP3 000001e5: SWAP1 000001e6: PUSH0 000001e7: SWAP1 000001e8: GAS 000001e9: CALL 000001ea: SWAP1 000001eb: DUP2 000001ec: ISZERO 000001ed: PUSH2 0x0276 000001f0: JUMPI 000001f1: PUSH0 000001f2: SWAP2 000001f3: PUSH2 0x0247 000001f6: JUMPI 000001f7: JUMPDEST 000001f8: POP 000001f9: ISZERO 000001fa: PUSH2 0x0238 000001fd: JUMPI 000001fe: PUSH1 0x01 00000200: SLOAD 00000201: PUSH1 0x40 00000203: MLOAD 00000204: SWAP2 00000205: DUP3 00000206: MSTORE 00000207: PUSH1 0x01 00000209: PUSH1 0x01 0000020b: PUSH1 0xa0 0000020d: SHL 0000020e: SUB 0000020f: AND 00000210: SWAP1 00000211: PUSH32 0x2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e51 00000232: SWAP1 00000233: PUSH1 0x20 00000235: SWAP1 00000236: LOG2 00000237: STOP 00000238: JUMPDEST 00000239: PUSH4 0x12171d83 0000023e: PUSH1 0xe3 00000240: SHL 00000241: PUSH0 00000242: MSTORE 00000243: PUSH1 0x04 00000245: PUSH0 00000246: REVERT 00000247: JUMPDEST 00000248: PUSH2 0x0269 0000024b: SWAP2 0000024c: POP 0000024d: PUSH1 0x20 0000024f: RETURNDATASIZE 00000250: PUSH1 0x20 00000252: GT 00000253: PUSH2 0x026f 00000256: JUMPI 00000257: JUMPDEST 00000258: PUSH2 0x0261 0000025b: DUP2 0000025c: DUP4 0000025d: PUSH2 0x070b 00000260: JUMP 00000261: JUMPDEST 00000262: DUP2 00000263: ADD 00000264: SWAP1 00000265: PUSH2 0x0741 00000268: JUMP 00000269: JUMPDEST 0000026a: DUP3 0000026b: PUSH2 0x01f7 0000026e: JUMP 0000026f: JUMPDEST 00000270: POP 00000271: RETURNDATASIZE 00000272: PUSH2 0x0257 00000275: JUMP 00000276: JUMPDEST 00000277: PUSH1 0x40 00000279: MLOAD 0000027a: RETURNDATASIZE 0000027b: PUSH0 0000027c: DUP3 0000027d: RETURNDATACOPY 0000027e: RETURNDATASIZE 0000027f: SWAP1 00000280: REVERT 00000281: JUMPDEST 00000282: SWAP1 00000283: SWAP2 00000284: POP 00000285: PUSH1 0x20 00000287: DUP2 00000288: RETURNDATASIZE 00000289: PUSH1 0x20 0000028b: GT 0000028c: PUSH2 0x02ad 0000028f: JUMPI 00000290: JUMPDEST 00000291: DUP2 00000292: PUSH2 0x029d 00000295: PUSH1 0x20 00000297: SWAP4 00000298: DUP4 00000299: PUSH2 0x070b 0000029c: JUMP 0000029d: JUMPDEST 0000029e: DUP2 0000029f: ADD 000002a0: SUB 000002a1: SLT 000002a2: PUSH2 0x0114 000002a5: JUMPI 000002a6: MLOAD 000002a7: SWAP1 000002a8: DUP3 000002a9: PUSH2 0x01ab 000002ac: JUMP 000002ad: JUMPDEST 000002ae: RETURNDATASIZE 000002af: SWAP2 000002b0: POP 000002b1: PUSH2 0x0290 000002b4: JUMP 000002b5: JUMPDEST 000002b6: PUSH4 0x33762773 000002bb: PUSH1 0xe1 000002bd: SHL 000002be: PUSH0 000002bf: MSTORE 000002c0: PUSH1 0x04 000002c2: PUSH0 000002c3: REVERT 000002c4: JUMPDEST 000002c5: CALLVALUE 000002c6: PUSH2 0x0114 000002c9: JUMPI 000002ca: PUSH0 000002cb: CALLDATASIZE 000002cc: PUSH1 0x03 000002ce: NOT 000002cf: ADD 000002d0: SLT 000002d1: PUSH2 0x0114 000002d4: JUMPI 000002d5: PUSH1 0x40 000002d7: MLOAD 000002d8: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000002f9: PUSH1 0x01 000002fb: PUSH1 0x01 000002fd: PUSH1 0xa0 000002ff: SHL 00000300: SUB 00000301: AND 00000302: DUP2 00000303: MSTORE 00000304: PUSH1 0x20 00000306: SWAP1 00000307: RETURN 00000308: JUMPDEST 00000309: CALLVALUE 0000030a: PUSH2 0x0114 0000030d: JUMPI 0000030e: PUSH1 0x20 00000310: CALLDATASIZE 00000311: PUSH1 0x03 00000313: NOT 00000314: ADD 00000315: SLT 00000316: PUSH2 0x0114 00000319: JUMPI 0000031a: PUSH1 0x20 0000031c: PUSH2 0x033f 0000031f: PUSH1 0x04 00000321: CALLDATALOAD 00000322: DUP1 00000323: PUSH1 0x08 00000325: SHR 00000326: PUSH0 00000327: MSTORE 00000328: PUSH1 0x02 0000032a: PUSH1 0x20 0000032c: MSTORE 0000032d: PUSH1 0x01 0000032f: PUSH1 0xff 00000331: PUSH1 0x40 00000333: PUSH0 00000334: KECCAK256 00000335: SLOAD 00000336: SWAP3 00000337: AND 00000338: SHL 00000339: DUP1 0000033a: SWAP2 0000033b: AND 0000033c: EQ 0000033d: SWAP1 0000033e: JUMP 0000033f: JUMPDEST 00000340: PUSH1 0x40 00000342: MLOAD 00000343: SWAP1 00000344: ISZERO 00000345: ISZERO 00000346: DUP2 00000347: MSTORE 00000348: RETURN 00000349: JUMPDEST 0000034a: CALLVALUE 0000034b: PUSH2 0x0114 0000034e: JUMPI 0000034f: PUSH0 00000350: CALLDATASIZE 00000351: PUSH1 0x03 00000353: NOT 00000354: ADD 00000355: SLT 00000356: PUSH2 0x0114 00000359: JUMPI 0000035a: PUSH1 0x01 0000035c: SLOAD 0000035d: PUSH1 0x40 0000035f: MLOAD 00000360: PUSH1 0x01 00000362: PUSH1 0x01 00000364: PUSH1 0xa0 00000366: SHL 00000367: SUB 00000368: SWAP1 00000369: SWAP2 0000036a: AND 0000036b: DUP2 0000036c: MSTORE 0000036d: PUSH1 0x20 0000036f: SWAP1 00000370: RETURN 00000371: JUMPDEST 00000372: CALLVALUE 00000373: PUSH2 0x0114 00000376: JUMPI 00000377: PUSH0 00000378: CALLDATASIZE 00000379: PUSH1 0x03 0000037b: NOT 0000037c: ADD 0000037d: SLT 0000037e: PUSH2 0x0114 00000381: JUMPI 00000382: PUSH1 0x20 00000384: PUSH2 0x038b 00000387: PUSH2 0x0759 0000038a: JUMP 0000038b: JUMPDEST 0000038c: PUSH1 0x40 0000038e: MLOAD 0000038f: SWAP1 00000390: DUP2 00000391: MSTORE 00000392: RETURN 00000393: JUMPDEST 00000394: CALLVALUE 00000395: PUSH2 0x0114 00000398: JUMPI 00000399: PUSH0 0000039a: CALLDATASIZE 0000039b: PUSH1 0x03 0000039d: NOT 0000039e: ADD 0000039f: SLT 000003a0: PUSH2 0x0114 000003a3: JUMPI 000003a4: PUSH2 0x03ab 000003a7: PUSH2 0x07a8 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH1 0x01 000003ae: DUP1 000003af: SLOAD 000003b0: PUSH1 0x01 000003b2: PUSH1 0x01 000003b4: PUSH1 0xa0 000003b6: SHL 000003b7: SUB 000003b8: NOT 000003b9: DUP2 000003ba: AND 000003bb: SWAP1 000003bc: SWAP2 000003bd: SSTORE 000003be: PUSH0 000003bf: SWAP1 000003c0: PUSH1 0x01 000003c2: PUSH1 0x01 000003c4: PUSH1 0xa0 000003c6: SHL 000003c7: SUB 000003c8: AND 000003c9: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000003ea: DUP3 000003eb: DUP1 000003ec: LOG3 000003ed: STOP 000003ee: JUMPDEST 000003ef: CALLVALUE 000003f0: PUSH2 0x0114 000003f3: JUMPI 000003f4: PUSH0 000003f5: CALLDATASIZE 000003f6: PUSH1 0x03 000003f8: NOT 000003f9: ADD 000003fa: SLT 000003fb: PUSH2 0x0114 000003fe: JUMPI 000003ff: PUSH1 0x20 00000401: PUSH1 0x40 00000403: MLOAD 00000404: PUSH32 0xd6d5d0e353a3f6cc3b0d5ff875487d077e0c50fe9bfacd7c6f39d5bf6ca2c45f 00000425: DUP2 00000426: MSTORE 00000427: RETURN 00000428: JUMPDEST 00000429: CALLVALUE 0000042a: PUSH2 0x0114 0000042d: JUMPI 0000042e: PUSH1 0x80 00000430: CALLDATASIZE 00000431: PUSH1 0x03 00000433: NOT 00000434: ADD 00000435: SLT 00000436: PUSH2 0x0114 00000439: JUMPI 0000043a: PUSH1 0x24 0000043c: CALLDATALOAD 0000043d: PUSH1 0x01 0000043f: PUSH1 0x01 00000441: PUSH1 0xa0 00000443: SHL 00000444: SUB 00000445: DUP2 00000446: AND 00000447: SWAP1 00000448: PUSH1 0x04 0000044a: CALLDATALOAD 0000044b: DUP3 0000044c: DUP3 0000044d: SUB 0000044e: PUSH2 0x0114 00000451: JUMPI 00000452: PUSH1 0x64 00000454: CALLDATALOAD 00000455: SWAP3 00000456: PUSH1 0x44 00000458: CALLDATALOAD 00000459: PUSH8 0xffffffffffffffff 00000462: DUP6 00000463: GT 00000464: PUSH2 0x0114 00000467: JUMPI 00000468: CALLDATASIZE 00000469: PUSH1 0x23 0000046b: DUP7 0000046c: ADD 0000046d: SLT 0000046e: ISZERO 0000046f: PUSH2 0x0114 00000472: JUMPI 00000473: DUP5 00000474: PUSH1 0x04 00000476: ADD 00000477: CALLDATALOAD 00000478: PUSH8 0xffffffffffffffff 00000481: DUP2 00000482: GT 00000483: PUSH2 0x0114 00000486: JUMPI 00000487: DUP1 00000488: PUSH1 0x05 0000048a: SHL 0000048b: SWAP6 0000048c: PUSH1 0x24 0000048e: DUP8 0000048f: DUP3 00000490: ADD 00000491: ADD 00000492: SWAP1 00000493: CALLDATASIZE 00000494: DUP3 00000495: GT 00000496: PUSH2 0x0114 00000499: JUMPI 0000049a: PUSH1 0x02 0000049c: PUSH0 0000049d: SLOAD 0000049e: EQ 0000049f: PUSH2 0x06c4 000004a2: JUMPI 000004a3: PUSH1 0x02 000004a5: PUSH0 000004a6: SSTORE 000004a7: PUSH2 0x04c8 000004aa: DUP7 000004ab: DUP1 000004ac: PUSH1 0x08 000004ae: SHR 000004af: PUSH0 000004b0: MSTORE 000004b1: PUSH1 0x02 000004b3: PUSH1 0x20 000004b5: MSTORE 000004b6: PUSH1 0x01 000004b8: PUSH1 0xff 000004ba: PUSH1 0x40 000004bc: PUSH0 000004bd: KECCAK256 000004be: SLOAD 000004bf: SWAP3 000004c0: AND 000004c1: SHL 000004c2: DUP1 000004c3: SWAP2 000004c4: AND 000004c5: EQ 000004c6: SWAP1 000004c7: JUMP 000004c8: JUMPDEST 000004c9: PUSH2 0x06b5 000004cc: JUMPI 000004cd: DUP4 000004ce: ISZERO 000004cf: PUSH2 0x06a6 000004d2: JUMPI 000004d3: PUSH1 0x40 000004d5: MLOAD 000004d6: PUSH1 0x20 000004d8: DUP2 000004d9: ADD 000004da: SWAP1 000004db: DUP8 000004dc: DUP3 000004dd: MSTORE 000004de: DUP7 000004df: PUSH1 0x40 000004e1: DUP3 000004e2: ADD 000004e3: MSTORE 000004e4: DUP6 000004e5: PUSH1 0x60 000004e7: DUP3 000004e8: ADD 000004e9: MSTORE 000004ea: PUSH1 0x60 000004ec: DUP2 000004ed: MSTORE 000004ee: PUSH2 0x04f8 000004f1: PUSH1 0x80 000004f3: DUP3 000004f4: PUSH2 0x070b 000004f7: JUMP 000004f8: JUMPDEST 000004f9: MLOAD 000004fa: SWAP1 000004fb: KECCAK256 000004fc: PUSH1 0x40 000004fe: MLOAD 000004ff: PUSH1 0x20 00000501: DUP2 00000502: ADD 00000503: SWAP2 00000504: DUP3 00000505: MSTORE 00000506: PUSH1 0x20 00000508: DUP2 00000509: MSTORE 0000050a: PUSH2 0x0514 0000050d: PUSH1 0x40 0000050f: DUP3 00000510: PUSH2 0x070b 00000513: JUMP 00000514: JUMPDEST 00000515: MLOAD 00000516: SWAP1 00000517: KECCAK256 00000518: SWAP3 00000519: PUSH2 0x0528 0000051c: PUSH1 0x20 0000051e: PUSH1 0x40 00000520: MLOAD 00000521: SWAP11 00000522: ADD 00000523: DUP11 00000524: PUSH2 0x070b 00000527: JUMP 00000528: JUMPDEST 00000529: DUP9 0000052a: MSTORE 0000052b: PUSH1 0x24 0000052d: ADD 0000052e: PUSH1 0x20 00000530: DUP9 00000531: ADD 00000532: JUMPDEST 00000533: DUP3 00000534: DUP3 00000535: LT 00000536: PUSH2 0x0696 00000539: JUMPI 0000053a: POP 0000053b: POP 0000053c: POP 0000053d: SWAP3 0000053e: PUSH0 0000053f: SWAP4 00000540: JUMPDEST 00000541: DUP7 00000542: MLOAD 00000543: DUP6 00000544: LT 00000545: ISZERO 00000546: PUSH2 0x0582 00000549: JUMPI 0000054a: PUSH1 0x20 0000054c: DUP6 0000054d: PUSH1 0x05 0000054f: SHL 00000550: DUP9 00000551: ADD 00000552: ADD 00000553: MLOAD 00000554: SWAP1 00000555: DUP2 00000556: DUP2 00000557: LT 00000558: PUSH0 00000559: EQ 0000055a: PUSH2 0x0571 0000055d: JUMPI 0000055e: PUSH0 0000055f: MSTORE 00000560: PUSH1 0x20 00000562: MSTORE 00000563: PUSH1 0x01 00000565: PUSH1 0x40 00000567: PUSH0 00000568: KECCAK256 00000569: JUMPDEST 0000056a: SWAP5 0000056b: ADD 0000056c: SWAP4 0000056d: PUSH2 0x0540 00000570: JUMP 00000571: JUMPDEST 00000572: SWAP1 00000573: PUSH0 00000574: MSTORE 00000575: PUSH1 0x20 00000577: MSTORE 00000578: PUSH1 0x01 0000057a: PUSH1 0x40 0000057c: PUSH0 0000057d: KECCAK256 0000057e: PUSH2 0x0569 00000581: JUMP 00000582: JUMPDEST 00000583: DUP6 00000584: SWAP1 00000585: PUSH32 0xd6d5d0e353a3f6cc3b0d5ff875487d077e0c50fe9bfacd7c6f39d5bf6ca2c45f 000005a6: SUB 000005a7: PUSH2 0x0687 000005aa: JUMPI 000005ab: PUSH1 0x08 000005ad: DUP3 000005ae: SWAP1 000005af: SHR 000005b0: PUSH0 000005b1: SWAP1 000005b2: DUP2 000005b3: MSTORE 000005b4: PUSH1 0x02 000005b6: PUSH1 0x20 000005b8: SWAP1 000005b9: DUP2 000005ba: MSTORE 000005bb: PUSH1 0x40 000005bd: DUP1 000005be: DUP4 000005bf: KECCAK256 000005c0: DUP1 000005c1: SLOAD 000005c2: PUSH1 0x01 000005c4: PUSH1 0xff 000005c6: SWAP1 000005c7: SWAP8 000005c8: AND 000005c9: SWAP7 000005ca: SWAP1 000005cb: SWAP7 000005cc: SHL 000005cd: SWAP1 000005ce: SWAP6 000005cf: OR 000005d0: SWAP1 000005d1: SWAP5 000005d2: SSTORE 000005d3: SWAP3 000005d4: MLOAD 000005d5: PUSH4 0xa9059cbb 000005da: PUSH1 0xe0 000005dc: SHL 000005dd: DUP2 000005de: MSTORE 000005df: PUSH1 0x01 000005e1: PUSH1 0x01 000005e3: PUSH1 0xa0 000005e5: SHL 000005e6: SUB 000005e7: SWAP3 000005e8: DUP4 000005e9: AND 000005ea: PUSH1 0x04 000005ec: DUP3 000005ed: ADD 000005ee: MSTORE 000005ef: PUSH1 0x24 000005f1: DUP2 000005f2: ADD 000005f3: DUP6 000005f4: SWAP1 000005f5: MSTORE 000005f6: SWAP3 000005f7: SWAP2 000005f8: DUP4 000005f9: SWAP2 000005fa: PUSH1 0x44 000005fc: SWAP2 000005fd: DUP4 000005fe: SWAP2 000005ff: SWAP1 00000600: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000621: AND 00000622: GAS 00000623: CALL 00000624: SWAP1 00000625: DUP2 00000626: ISZERO 00000627: PUSH2 0x0276 0000062a: JUMPI 0000062b: PUSH0 0000062c: SWAP2 0000062d: PUSH2 0x0668 00000630: JUMPI 00000631: JUMPDEST 00000632: POP 00000633: ISZERO 00000634: PUSH2 0x0238 00000637: JUMPI 00000638: PUSH1 0x20 0000063a: PUSH32 0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a 0000065b: SWAP2 0000065c: PUSH1 0x40 0000065e: MLOAD 0000065f: SWAP1 00000660: DUP2 00000661: MSTORE 00000662: LOG2 00000663: PUSH1 0x01 00000665: PUSH0 00000666: SSTORE 00000667: STOP 00000668: JUMPDEST 00000669: PUSH2 0x0681 0000066c: SWAP2 0000066d: POP 0000066e: PUSH1 0x20 00000670: RETURNDATASIZE 00000671: PUSH1 0x20 00000673: GT 00000674: PUSH2 0x026f 00000677: JUMPI 00000678: PUSH2 0x0261 0000067b: DUP2 0000067c: DUP4 0000067d: PUSH2 0x070b 00000680: JUMP 00000681: JUMPDEST 00000682: DUP4 00000683: PUSH2 0x0631 00000686: JUMP 00000687: JUMPDEST 00000688: PUSH4 0x09bde339 0000068d: PUSH1 0xe0 0000068f: SHL 00000690: PUSH0 00000691: MSTORE 00000692: PUSH1 0x04 00000694: PUSH0 00000695: REVERT 00000696: JUMPDEST 00000697: DUP2 00000698: CALLDATALOAD 00000699: DUP2 0000069a: MSTORE 0000069b: PUSH1 0x20 0000069d: SWAP2 0000069e: DUP3 0000069f: ADD 000006a0: SWAP2 000006a1: ADD 000006a2: PUSH2 0x0532 000006a5: JUMP 000006a6: JUMPDEST 000006a7: PUSH4 0x1f2a2005 000006ac: PUSH1 0xe0 000006ae: SHL 000006af: PUSH0 000006b0: MSTORE 000006b1: PUSH1 0x04 000006b3: PUSH0 000006b4: REVERT 000006b5: JUMPDEST 000006b6: PUSH4 0x0c8d9eab 000006bb: PUSH1 0xe3 000006bd: SHL 000006be: PUSH0 000006bf: MSTORE 000006c0: PUSH1 0x04 000006c2: PUSH0 000006c3: REVERT 000006c4: JUMPDEST 000006c5: PUSH4 0x3ee5aeb5 000006ca: PUSH1 0xe0 000006cc: SHL 000006cd: PUSH0 000006ce: MSTORE 000006cf: PUSH1 0x04 000006d1: PUSH0 000006d2: REVERT 000006d3: JUMPDEST 000006d4: CALLVALUE 000006d5: PUSH2 0x0114 000006d8: JUMPI 000006d9: PUSH0 000006da: CALLDATASIZE 000006db: PUSH1 0x03 000006dd: NOT 000006de: ADD 000006df: SLT 000006e0: PUSH2 0x0114 000006e3: JUMPI 000006e4: PUSH1 0x20 000006e6: SWAP1 000006e7: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b 00000708: DUP2 00000709: MSTORE 0000070a: RETURN 0000070b: JUMPDEST 0000070c: SWAP1 0000070d: PUSH1 0x1f 0000070f: DUP1 00000710: NOT 00000711: SWAP2 00000712: ADD 00000713: AND 00000714: DUP2 00000715: ADD 00000716: SWAP1 00000717: DUP2 00000718: LT 00000719: PUSH8 0xffffffffffffffff 00000722: DUP3 00000723: GT 00000724: OR 00000725: PUSH2 0x072d 00000728: JUMPI 00000729: PUSH1 0x40 0000072b: MSTORE 0000072c: JUMP 0000072d: JUMPDEST 0000072e: PUSH4 0x4e487b71 00000733: PUSH1 0xe0 00000735: SHL 00000736: PUSH0 00000737: MSTORE 00000738: PUSH1 0x41 0000073a: PUSH1 0x04 0000073c: MSTORE 0000073d: PUSH1 0x24 0000073f: PUSH0 00000740: REVERT 00000741: JUMPDEST 00000742: SWAP1 00000743: DUP2 00000744: PUSH1 0x20 00000746: SWAP2 00000747: SUB 00000748: SLT 00000749: PUSH2 0x0114 0000074c: JUMPI 0000074d: MLOAD 0000074e: DUP1 0000074f: ISZERO 00000750: ISZERO 00000751: DUP2 00000752: SUB 00000753: PUSH2 0x0114 00000756: JUMPI 00000757: SWAP1 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b 0000077b: DUP1 0000077c: TIMESTAMP 0000077d: LT 0000077e: ISZERO 0000077f: PUSH2 0x07a3 00000782: JUMPI 00000783: TIMESTAMP 00000784: DUP2 00000785: SUB 00000786: SWAP1 00000787: DUP2 00000788: GT 00000789: PUSH2 0x078f 0000078c: JUMPI 0000078d: SWAP1 0000078e: JUMP 0000078f: JUMPDEST 00000790: PUSH4 0x4e487b71 00000795: PUSH1 0xe0 00000797: SHL 00000798: PUSH0 00000799: MSTORE 0000079a: PUSH1 0x11 0000079c: PUSH1 0x04 0000079e: MSTORE 0000079f: PUSH1 0x24 000007a1: PUSH0 000007a2: REVERT 000007a3: JUMPDEST 000007a4: POP 000007a5: PUSH0 000007a6: SWAP1 000007a7: JUMP 000007a8: JUMPDEST 000007a9: PUSH1 0x01 000007ab: SLOAD 000007ac: PUSH1 0x01 000007ae: PUSH1 0x01 000007b0: PUSH1 0xa0 000007b2: SHL 000007b3: SUB 000007b4: AND 000007b5: CALLER 000007b6: SUB 000007b7: PUSH2 0x07bc 000007ba: JUMPI 000007bb: JUMP 000007bc: JUMPDEST 000007bd: PUSH4 0x118cdaa7 000007c2: PUSH1 0xe0 000007c4: SHL 000007c5: PUSH0 000007c6: MSTORE 000007c7: CALLER 000007c8: PUSH1 0x04 000007ca: MSTORE 000007cb: PUSH1 0x24 000007cd: PUSH0 000007ce: REVERT 000007cf: INVALID 000007d0: LOG2 000007d1: PUSH5 0x6970667358 000007d7: UNKNOWN(0x22) 000007d8: SLT 000007d9: KECCAK256 000007da: OR 000007db: PUSH0 000007dc: UNKNOWN(0xB8) 000007dd: UNKNOWN(0xCC) 000007de: DUP4 000007df: CALLDATASIZE 000007e0: EXTCODECOPY 000007e1: UNKNOWN(0xC7) 000007e2: UNKNOWN(0xC8) 000007e3: MCOPY 000007e4: UNKNOWN(0xBD) 000007e5: UNKNOWN(0xD4) 000007e6: UNKNOWN(0x0E) 000007e7: PUSH13 0x72602378cfaebc76f2eae35dd4 000007f5: UNKNOWN(0x0E) 000007f6: DELEGATECALL 000007f7: DIFFICULTY 000007f8: RETURNDATACOPY 000007f9: UNKNOWN(0xBB) 000007fa: PUSH5 0x736f6c6343 00000800: STOP 00000801: ADDMOD 00000802: SHR 00000803: STOP 00000804: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xa32749e537ad724c3fb5fa2585e8804af4471e826ac6b244df3df67948cf18cd
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 120,
"trace_id": "0xa32749e537ad724c3fb5fa2585e8804af4471e826ac6b244df3df67948cf18cd",
"confirmed": false,
"trace_mode": "callTracer",
"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": "0x29dcb0cf",
"selector": "0x29dcb0cf",
"calldata_variants": [
"0x29dcb0cf",
"0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e7ba6ef",
"selector": "0x2e7ba6ef",
"calldata_variants": [
"0x2e7ba6ef",
"0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2eb4a7ab",
"selector": "0x2eb4a7ab",
"calldata_variants": [
"0x2eb4a7ab",
"0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x83c44a66",
"selector": "0x83c44a66",
"calldata_variants": [
"0x83c44a66",
"0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e34070f",
"selector": "0x9e34070f",
"calldata_variants": [
"0x9e34070f",
"0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2038,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182
call_targets:
0xffbacd9b9d85850f2d4711f17badbf73580a0d0f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xffbacd9b9d85850f2d4711f17badbf73580a0d0f"
],
"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": "0x29dcb0cf",
"selector": "0x29dcb0cf",
"calldata_variants": [
"0x29dcb0cf",
"0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e7ba6ef",
"selector": "0x2e7ba6ef",
"calldata_variants": [
"0x2e7ba6ef",
"0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2eb4a7ab",
"selector": "0x2eb4a7ab",
"calldata_variants": [
"0x2eb4a7ab",
"0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x83c44a66",
"selector": "0x83c44a66",
"calldata_variants": [
"0x83c44a66",
"0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e34070f",
"selector": "0x9e34070f",
"calldata_variants": [
"0x9e34070f",
"0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 489,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1571,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182
call_targets:
0xffbacd9b9d85850f2d4711f17badbf73580a0d0f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xffbacd9b9d85850f2d4711f17badbf73580a0d0f"
],
"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": "0x29dcb0cf",
"selector": "0x29dcb0cf",
"calldata_variants": [
"0x29dcb0cf",
"0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e7ba6ef",
"selector": "0x2e7ba6ef",
"calldata_variants": [
"0x2e7ba6ef",
"0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2eb4a7ab",
"selector": "0x2eb4a7ab",
"calldata_variants": [
"0x2eb4a7ab",
"0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x83c44a66",
"selector": "0x83c44a66",
"calldata_variants": [
"0x83c44a66",
"0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e34070f",
"selector": "0x9e34070f",
"calldata_variants": [
"0x9e34070f",
"0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 489,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1571,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|