019c0ea9-0996-7301-a63e-ca7c305937d3
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 |
|---|---|---|---|---|
| 42117 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42118 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42119 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42120 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42121 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42122 | detector.run | complete | 1 / 3 | 2 months ago |
| 42123 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42457 | report.consolidate | failed | 6 / 6 | 2 months ago |
| 42458 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "etherscan_only",
"etherscan_hint": {
"source": "etherscan",
"etherscan": {
"proxy_flag": true,
"implementation": "0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
}
},
"implementation": "0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
}
'forge clean' running (wd: /tmp/slither-6umnl6ge) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-6umnl6ge) UpgradeabilityProxy.implementation() (contracts/Contract.sol#81-85) is declared view but contains assembly code CoinToolProxy.proxyOwner() (contracts/Contract.sol#144-152) is declared view but contains assembly code Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#constant-functions-using-assembly-code CoinToolProxy.constructor(address,string)._version (contracts/Contract.sol#133) shadows: - UpgradeabilityProxy._version (contracts/Contract.sol#61-63) (state variable) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing Proxy.fallback() (contracts/Contract.sol#27-42) uses assembly - INLINE ASM (contracts/Contract.sol#31-42) UpgradeabilityProxy.implementation() (contracts/Contract.sol#81-85) uses assembly - INLINE ASM (contracts/Contract.sol#84-85) UpgradeabilityProxy._setImplementation(address) (contracts/Contract.sol#93-96) uses assembly - INLINE ASM (contracts/Contract.sol#95-96) CoinToolProxy.proxyOwner() (contracts/Contract.sol#144-152) uses assembly - INLINE ASM (contracts/Contract.sol#150-152) CoinToolProxy._setUpgradeabilityOwner(address) (contracts/Contract.sol#184-190) uses assembly - INLINE ASM (contracts/Contract.sol#186-190) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage Version constraint 0.4.24 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor_0.4.x - IncorrectEventSignatureInLibraries_0.4.x - ABIEncoderV2PackedStorage_0.4.x - ExpExponentCleanup - EventStructWrongData. It is used by: - 0.4.24 (contracts/Contract.sol#4-6) - 0.4.24 (contracts/Contract.sol#42) - 0.4.24 (contracts/Contract.sol#109-110) solc-0.4.24 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible. Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Low level call in CoinToolProxy.upgradeToAndCall(address,string,bytes) (contracts/Contract.sol#181-184): - require(bool)(address(this).call.value(msg.value)(_data)) (contracts/Contract.sol#182-184) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls Constant UpgradeabilityProxy.implementationPosition (contracts/Contract.sol#60-61) is not in UPPER_CASE_WITH_UNDERSCORES Parameter CoinToolProxy.transferProxyOwnership(address)._newOwner (contracts/Contract.sol#160) is not in mixedCase Parameter CoinToolProxy.upgradeTo(address,string)._implementation (contracts/Contract.sol#170) is not in mixedCase Parameter CoinToolProxy.upgradeTo(address,string)._newVersion (contracts/Contract.sol#170) is not in mixedCase Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._implementation (contracts/Contract.sol#181) is not in mixedCase Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._newVersion (contracts/Contract.sol#181) is not in mixedCase Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._data (contracts/Contract.sol#181) is not in mixedCase Constant CoinToolProxy.proxyOwnerPosition (contracts/Contract.sol#127-129) is not in UPPER_CASE_WITH_UNDERSCORES Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions upgradeTo(address,string) should be declared external: - CoinToolProxy.upgradeTo(address,string) (contracts/Contract.sol#170-171) upgradeToAndCall(address,string,bytes) should be declared external: - CoinToolProxy.upgradeToAndCall(address,string,bytes) (contracts/Contract.sol#181-184) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external . analyzed (3 contracts with 100 detectors), 21 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.4.24",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.4.24",
"install_stderr": null,
"install_stdout": "Version '0.4.24' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-6umnl6ge --allow-paths /tmp/slither-6umnl6ge,/tmp/slither-6umnl6ge/lib,/tmp/slither-6umnl6ge/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 21,
"workspace_hash": "6ba237f7609dd2f69ddf302b6a1020774c787f348bf72adaf1df71baa3ae3c15",
"duration_seconds": 0.4775049686431885,
"solc_version_requested": "0.4.24"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 121, in dispatch_job
return report_consolidate.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/report_consolidate.py", line 605, in run
raise RuntimeError("implementation_not_ready")
RuntimeError: implementation_not_ready
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0078 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x025313a2 0000003c: EQ 0000003d: PUSH2 0x00e7 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x36ba9794 00000047: EQ 00000048: PUSH2 0x013e 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x54fd4d50 00000052: EQ 00000053: PUSH2 0x01c7 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x5c60da1b 0000005d: EQ 0000005e: PUSH2 0x0257 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xd7e24337 00000068: EQ 00000069: PUSH2 0x02ae 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xf1739cae 00000073: EQ 00000074: PUSH2 0x0370 00000077: JUMPI 00000078: JUMPDEST 00000079: PUSH1 0x00 0000007b: PUSH2 0x0082 0000007e: PUSH2 0x03b3 00000081: JUMP 00000082: JUMPDEST 00000083: SWAP1 00000084: POP 00000085: PUSH1 0x00 00000087: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000009c: AND 0000009d: DUP2 0000009e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000b3: AND 000000b4: EQ 000000b5: ISZERO 000000b6: ISZERO 000000b7: ISZERO 000000b8: PUSH2 0x00c0 000000bb: JUMPI 000000bc: PUSH1 0x00 000000be: DUP1 000000bf: REVERT 000000c0: JUMPDEST 000000c1: PUSH1 0x40 000000c3: MLOAD 000000c4: CALLDATASIZE 000000c5: PUSH1 0x00 000000c7: DUP3 000000c8: CALLDATACOPY 000000c9: PUSH1 0x00 000000cb: DUP1 000000cc: CALLDATASIZE 000000cd: DUP4 000000ce: DUP6 000000cf: GAS 000000d0: DELEGATECALL 000000d1: RETURNDATASIZE 000000d2: DUP1 000000d3: PUSH1 0x00 000000d5: DUP5 000000d6: RETURNDATACOPY 000000d7: DUP2 000000d8: PUSH1 0x00 000000da: DUP2 000000db: EQ 000000dc: PUSH2 0x00e3 000000df: JUMPI 000000e0: DUP2 000000e1: DUP5 000000e2: RETURN 000000e3: JUMPDEST 000000e4: DUP2 000000e5: DUP5 000000e6: REVERT 000000e7: JUMPDEST 000000e8: CALLVALUE 000000e9: DUP1 000000ea: ISZERO 000000eb: PUSH2 0x00f3 000000ee: JUMPI 000000ef: PUSH1 0x00 000000f1: DUP1 000000f2: REVERT 000000f3: JUMPDEST 000000f4: POP 000000f5: PUSH2 0x00fc 000000f8: PUSH2 0x041c 000000fb: JUMP 000000fc: JUMPDEST 000000fd: PUSH1 0x40 000000ff: MLOAD 00000100: DUP1 00000101: DUP3 00000102: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000117: AND 00000118: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000012d: AND 0000012e: DUP2 0000012f: MSTORE 00000130: PUSH1 0x20 00000132: ADD 00000133: SWAP2 00000134: POP 00000135: POP 00000136: PUSH1 0x40 00000138: MLOAD 00000139: DUP1 0000013a: SWAP2 0000013b: SUB 0000013c: SWAP1 0000013d: RETURN 0000013e: JUMPDEST 0000013f: CALLVALUE 00000140: DUP1 00000141: ISZERO 00000142: PUSH2 0x014a 00000145: JUMPI 00000146: PUSH1 0x00 00000148: DUP1 00000149: REVERT 0000014a: JUMPDEST 0000014b: POP 0000014c: PUSH2 0x01c5 0000014f: PUSH1 0x04 00000151: DUP1 00000152: CALLDATASIZE 00000153: SUB 00000154: DUP2 00000155: ADD 00000156: SWAP1 00000157: DUP1 00000158: DUP1 00000159: CALLDATALOAD 0000015a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000016f: AND 00000170: SWAP1 00000171: PUSH1 0x20 00000173: ADD 00000174: SWAP1 00000175: SWAP3 00000176: SWAP2 00000177: SWAP1 00000178: DUP1 00000179: CALLDATALOAD 0000017a: SWAP1 0000017b: PUSH1 0x20 0000017d: ADD 0000017e: SWAP1 0000017f: DUP3 00000180: ADD 00000181: DUP1 00000182: CALLDATALOAD 00000183: SWAP1 00000184: PUSH1 0x20 00000186: ADD 00000187: SWAP1 00000188: DUP1 00000189: DUP1 0000018a: PUSH1 0x1f 0000018c: ADD 0000018d: PUSH1 0x20 0000018f: DUP1 00000190: SWAP2 00000191: DIV 00000192: MUL 00000193: PUSH1 0x20 00000195: ADD 00000196: PUSH1 0x40 00000198: MLOAD 00000199: SWAP1 0000019a: DUP2 0000019b: ADD 0000019c: PUSH1 0x40 0000019e: MSTORE 0000019f: DUP1 000001a0: SWAP4 000001a1: SWAP3 000001a2: SWAP2 000001a3: SWAP1 000001a4: DUP2 000001a5: DUP2 000001a6: MSTORE 000001a7: PUSH1 0x20 000001a9: ADD 000001aa: DUP4 000001ab: DUP4 000001ac: DUP1 000001ad: DUP3 000001ae: DUP5 000001af: CALLDATACOPY 000001b0: DUP3 000001b1: ADD 000001b2: SWAP2 000001b3: POP 000001b4: POP 000001b5: POP 000001b6: POP 000001b7: POP 000001b8: POP 000001b9: SWAP2 000001ba: SWAP3 000001bb: SWAP2 000001bc: SWAP3 000001bd: SWAP1 000001be: POP 000001bf: POP 000001c0: POP 000001c1: PUSH2 0x045f 000001c4: JUMP 000001c5: JUMPDEST 000001c6: STOP 000001c7: JUMPDEST 000001c8: CALLVALUE 000001c9: DUP1 000001ca: ISZERO 000001cb: PUSH2 0x01d3 000001ce: JUMPI 000001cf: PUSH1 0x00 000001d1: DUP1 000001d2: REVERT 000001d3: JUMPDEST 000001d4: POP 000001d5: PUSH2 0x01dc 000001d8: PUSH2 0x04ae 000001db: JUMP 000001dc: JUMPDEST 000001dd: PUSH1 0x40 000001df: MLOAD 000001e0: DUP1 000001e1: DUP1 000001e2: PUSH1 0x20 000001e4: ADD 000001e5: DUP3 000001e6: DUP2 000001e7: SUB 000001e8: DUP3 000001e9: MSTORE 000001ea: DUP4 000001eb: DUP2 000001ec: DUP2 000001ed: MLOAD 000001ee: DUP2 000001ef: MSTORE 000001f0: PUSH1 0x20 000001f2: ADD 000001f3: SWAP2 000001f4: POP 000001f5: DUP1 000001f6: MLOAD 000001f7: SWAP1 000001f8: PUSH1 0x20 000001fa: ADD 000001fb: SWAP1 000001fc: DUP1 000001fd: DUP4 000001fe: DUP4 000001ff: PUSH1 0x00 00000201: JUMPDEST 00000202: DUP4 00000203: DUP2 00000204: LT 00000205: ISZERO 00000206: PUSH2 0x021c 00000209: JUMPI 0000020a: DUP1 0000020b: DUP3 0000020c: ADD 0000020d: MLOAD 0000020e: DUP2 0000020f: DUP5 00000210: ADD 00000211: MSTORE 00000212: PUSH1 0x20 00000214: DUP2 00000215: ADD 00000216: SWAP1 00000217: POP 00000218: PUSH2 0x0201 0000021b: JUMP 0000021c: JUMPDEST 0000021d: POP 0000021e: POP 0000021f: POP 00000220: POP 00000221: SWAP1 00000222: POP 00000223: SWAP1 00000224: DUP2 00000225: ADD 00000226: SWAP1 00000227: PUSH1 0x1f 00000229: AND 0000022a: DUP1 0000022b: ISZERO 0000022c: PUSH2 0x0249 0000022f: JUMPI 00000230: DUP1 00000231: DUP3 00000232: SUB 00000233: DUP1 00000234: MLOAD 00000235: PUSH1 0x01 00000237: DUP4 00000238: PUSH1 0x20 0000023a: SUB 0000023b: PUSH2 0x0100 0000023e: EXP 0000023f: SUB 00000240: NOT 00000241: AND 00000242: DUP2 00000243: MSTORE 00000244: PUSH1 0x20 00000246: ADD 00000247: SWAP2 00000248: POP 00000249: JUMPDEST 0000024a: POP 0000024b: SWAP3 0000024c: POP 0000024d: POP 0000024e: POP 0000024f: PUSH1 0x40 00000251: MLOAD 00000252: DUP1 00000253: SWAP2 00000254: SUB 00000255: SWAP1 00000256: RETURN 00000257: JUMPDEST 00000258: CALLVALUE 00000259: DUP1 0000025a: ISZERO 0000025b: PUSH2 0x0263 0000025e: JUMPI 0000025f: PUSH1 0x00 00000261: DUP1 00000262: REVERT 00000263: JUMPDEST 00000264: POP 00000265: PUSH2 0x026c 00000268: PUSH2 0x03b3 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH1 0x40 0000026f: MLOAD 00000270: DUP1 00000271: DUP3 00000272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000287: AND 00000288: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000029d: AND 0000029e: DUP2 0000029f: MSTORE 000002a0: PUSH1 0x20 000002a2: ADD 000002a3: SWAP2 000002a4: POP 000002a5: POP 000002a6: PUSH1 0x40 000002a8: MLOAD 000002a9: DUP1 000002aa: SWAP2 000002ab: SUB 000002ac: SWAP1 000002ad: RETURN 000002ae: JUMPDEST 000002af: PUSH2 0x036e 000002b2: PUSH1 0x04 000002b4: DUP1 000002b5: CALLDATASIZE 000002b6: SUB 000002b7: DUP2 000002b8: ADD 000002b9: SWAP1 000002ba: DUP1 000002bb: DUP1 000002bc: CALLDATALOAD 000002bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002d2: AND 000002d3: SWAP1 000002d4: PUSH1 0x20 000002d6: ADD 000002d7: SWAP1 000002d8: SWAP3 000002d9: SWAP2 000002da: SWAP1 000002db: DUP1 000002dc: CALLDATALOAD 000002dd: SWAP1 000002de: PUSH1 0x20 000002e0: ADD 000002e1: SWAP1 000002e2: DUP3 000002e3: ADD 000002e4: DUP1 000002e5: CALLDATALOAD 000002e6: SWAP1 000002e7: PUSH1 0x20 000002e9: ADD 000002ea: SWAP1 000002eb: DUP1 000002ec: DUP1 000002ed: PUSH1 0x1f 000002ef: ADD 000002f0: PUSH1 0x20 000002f2: DUP1 000002f3: SWAP2 000002f4: DIV 000002f5: MUL 000002f6: PUSH1 0x20 000002f8: ADD 000002f9: PUSH1 0x40 000002fb: MLOAD 000002fc: SWAP1 000002fd: DUP2 000002fe: ADD 000002ff: PUSH1 0x40 00000301: MSTORE 00000302: DUP1 00000303: SWAP4 00000304: SWAP3 00000305: SWAP2 00000306: SWAP1 00000307: DUP2 00000308: DUP2 00000309: MSTORE 0000030a: PUSH1 0x20 0000030c: ADD 0000030d: DUP4 0000030e: DUP4 0000030f: DUP1 00000310: DUP3 00000311: DUP5 00000312: CALLDATACOPY 00000313: DUP3 00000314: ADD 00000315: SWAP2 00000316: POP 00000317: POP 00000318: POP 00000319: POP 0000031a: POP 0000031b: POP 0000031c: SWAP2 0000031d: SWAP3 0000031e: SWAP2 0000031f: SWAP3 00000320: SWAP1 00000321: DUP1 00000322: CALLDATALOAD 00000323: SWAP1 00000324: PUSH1 0x20 00000326: ADD 00000327: SWAP1 00000328: DUP3 00000329: ADD 0000032a: DUP1 0000032b: CALLDATALOAD 0000032c: SWAP1 0000032d: PUSH1 0x20 0000032f: ADD 00000330: SWAP1 00000331: DUP1 00000332: DUP1 00000333: PUSH1 0x1f 00000335: ADD 00000336: PUSH1 0x20 00000338: DUP1 00000339: SWAP2 0000033a: DIV 0000033b: MUL 0000033c: PUSH1 0x20 0000033e: ADD 0000033f: PUSH1 0x40 00000341: MLOAD 00000342: SWAP1 00000343: DUP2 00000344: ADD 00000345: PUSH1 0x40 00000347: MSTORE 00000348: DUP1 00000349: SWAP4 0000034a: SWAP3 0000034b: SWAP2 0000034c: SWAP1 0000034d: DUP2 0000034e: DUP2 0000034f: MSTORE 00000350: PUSH1 0x20 00000352: ADD 00000353: DUP4 00000354: DUP4 00000355: DUP1 00000356: DUP3 00000357: DUP5 00000358: CALLDATACOPY 00000359: DUP3 0000035a: ADD 0000035b: SWAP2 0000035c: POP 0000035d: POP 0000035e: POP 0000035f: POP 00000360: POP 00000361: POP 00000362: SWAP2 00000363: SWAP3 00000364: SWAP2 00000365: SWAP3 00000366: SWAP1 00000367: POP 00000368: POP 00000369: POP 0000036a: PUSH2 0x0550 0000036d: JUMP 0000036e: JUMPDEST 0000036f: STOP 00000370: JUMPDEST 00000371: CALLVALUE 00000372: DUP1 00000373: ISZERO 00000374: PUSH2 0x037c 00000377: JUMPI 00000378: PUSH1 0x00 0000037a: DUP1 0000037b: REVERT 0000037c: JUMPDEST 0000037d: POP 0000037e: PUSH2 0x03b1 00000381: PUSH1 0x04 00000383: DUP1 00000384: CALLDATASIZE 00000385: SUB 00000386: DUP2 00000387: ADD 00000388: SWAP1 00000389: DUP1 0000038a: DUP1 0000038b: CALLDATALOAD 0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a1: AND 000003a2: SWAP1 000003a3: PUSH1 0x20 000003a5: ADD 000003a6: SWAP1 000003a7: SWAP3 000003a8: SWAP2 000003a9: SWAP1 000003aa: POP 000003ab: POP 000003ac: POP 000003ad: PUSH2 0x0633 000003b0: JUMP 000003b1: JUMPDEST 000003b2: STOP 000003b3: JUMPDEST 000003b4: PUSH1 0x00 000003b6: DUP1 000003b7: PUSH1 0x40 000003b9: MLOAD 000003ba: DUP1 000003bb: DUP1 000003bc: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e696d706c656d656e746174696f 000003dd: DUP2 000003de: MSTORE 000003df: PUSH1 0x20 000003e1: ADD 000003e2: PUSH32 0x6e00000000000000000000000000000000000000000000000000000000000000 00000403: DUP2 00000404: MSTORE 00000405: POP 00000406: PUSH1 0x21 00000408: ADD 00000409: SWAP1 0000040a: POP 0000040b: PUSH1 0x40 0000040d: MLOAD 0000040e: DUP1 0000040f: SWAP2 00000410: SUB 00000411: SWAP1 00000412: KECCAK256 00000413: SWAP1 00000414: POP 00000415: DUP1 00000416: SLOAD 00000417: SWAP2 00000418: POP 00000419: POP 0000041a: SWAP1 0000041b: JUMP 0000041c: JUMPDEST 0000041d: PUSH1 0x00 0000041f: DUP1 00000420: PUSH1 0x40 00000422: MLOAD 00000423: DUP1 00000424: DUP1 00000425: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e6f776e65720000000000000000 00000446: DUP2 00000447: MSTORE 00000448: POP 00000449: PUSH1 0x18 0000044b: ADD 0000044c: SWAP1 0000044d: POP 0000044e: PUSH1 0x40 00000450: MLOAD 00000451: DUP1 00000452: SWAP2 00000453: SUB 00000454: SWAP1 00000455: KECCAK256 00000456: SWAP1 00000457: POP 00000458: DUP1 00000459: SLOAD 0000045a: SWAP2 0000045b: POP 0000045c: POP 0000045d: SWAP1 0000045e: JUMP 0000045f: JUMPDEST 00000460: PUSH2 0x0467 00000463: PUSH2 0x041c 00000466: JUMP 00000467: JUMPDEST 00000468: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000047d: AND 0000047e: CALLER 0000047f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000494: AND 00000495: EQ 00000496: ISZERO 00000497: ISZERO 00000498: PUSH2 0x04a0 0000049b: JUMPI 0000049c: PUSH1 0x00 0000049e: DUP1 0000049f: REVERT 000004a0: JUMPDEST 000004a1: PUSH2 0x04aa 000004a4: DUP3 000004a5: DUP3 000004a6: PUSH2 0x075a 000004a9: JUMP 000004aa: JUMPDEST 000004ab: POP 000004ac: POP 000004ad: JUMP 000004ae: JUMPDEST 000004af: PUSH1 0x60 000004b1: PUSH1 0x00 000004b3: DUP1 000004b4: SLOAD 000004b5: PUSH1 0x01 000004b7: DUP2 000004b8: PUSH1 0x01 000004ba: AND 000004bb: ISZERO 000004bc: PUSH2 0x0100 000004bf: MUL 000004c0: SUB 000004c1: AND 000004c2: PUSH1 0x02 000004c4: SWAP1 000004c5: DIV 000004c6: DUP1 000004c7: PUSH1 0x1f 000004c9: ADD 000004ca: PUSH1 0x20 000004cc: DUP1 000004cd: SWAP2 000004ce: DIV 000004cf: MUL 000004d0: PUSH1 0x20 000004d2: ADD 000004d3: PUSH1 0x40 000004d5: MLOAD 000004d6: SWAP1 000004d7: DUP2 000004d8: ADD 000004d9: PUSH1 0x40 000004db: MSTORE 000004dc: DUP1 000004dd: SWAP3 000004de: SWAP2 000004df: SWAP1 000004e0: DUP2 000004e1: DUP2 000004e2: MSTORE 000004e3: PUSH1 0x20 000004e5: ADD 000004e6: DUP3 000004e7: DUP1 000004e8: SLOAD 000004e9: PUSH1 0x01 000004eb: DUP2 000004ec: PUSH1 0x01 000004ee: AND 000004ef: ISZERO 000004f0: PUSH2 0x0100 000004f3: MUL 000004f4: SUB 000004f5: AND 000004f6: PUSH1 0x02 000004f8: SWAP1 000004f9: DIV 000004fa: DUP1 000004fb: ISZERO 000004fc: PUSH2 0x0546 000004ff: JUMPI 00000500: DUP1 00000501: PUSH1 0x1f 00000503: LT 00000504: PUSH2 0x051b 00000507: JUMPI 00000508: PUSH2 0x0100 0000050b: DUP1 0000050c: DUP4 0000050d: SLOAD 0000050e: DIV 0000050f: MUL 00000510: DUP4 00000511: MSTORE 00000512: SWAP2 00000513: PUSH1 0x20 00000515: ADD 00000516: SWAP2 00000517: PUSH2 0x0546 0000051a: JUMP 0000051b: JUMPDEST 0000051c: DUP3 0000051d: ADD 0000051e: SWAP2 0000051f: SWAP1 00000520: PUSH1 0x00 00000522: MSTORE 00000523: PUSH1 0x20 00000525: PUSH1 0x00 00000527: KECCAK256 00000528: SWAP1 00000529: JUMPDEST 0000052a: DUP2 0000052b: SLOAD 0000052c: DUP2 0000052d: MSTORE 0000052e: SWAP1 0000052f: PUSH1 0x01 00000531: ADD 00000532: SWAP1 00000533: PUSH1 0x20 00000535: ADD 00000536: DUP1 00000537: DUP4 00000538: GT 00000539: PUSH2 0x0529 0000053c: JUMPI 0000053d: DUP3 0000053e: SWAP1 0000053f: SUB 00000540: PUSH1 0x1f 00000542: AND 00000543: DUP3 00000544: ADD 00000545: SWAP2 00000546: JUMPDEST 00000547: POP 00000548: POP 00000549: POP 0000054a: POP 0000054b: POP 0000054c: SWAP1 0000054d: POP 0000054e: SWAP1 0000054f: JUMP 00000550: JUMPDEST 00000551: PUSH2 0x0558 00000554: PUSH2 0x041c 00000557: JUMP 00000558: JUMPDEST 00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000056e: AND 0000056f: CALLER 00000570: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000585: AND 00000586: EQ 00000587: ISZERO 00000588: ISZERO 00000589: PUSH2 0x0591 0000058c: JUMPI 0000058d: PUSH1 0x00 0000058f: DUP1 00000590: REVERT 00000591: JUMPDEST 00000592: PUSH2 0x059b 00000595: DUP4 00000596: DUP4 00000597: PUSH2 0x075a 0000059a: JUMP 0000059b: JUMPDEST 0000059c: ADDRESS 0000059d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005b2: AND 000005b3: CALLVALUE 000005b4: DUP3 000005b5: PUSH1 0x40 000005b7: MLOAD 000005b8: DUP1 000005b9: DUP3 000005ba: DUP1 000005bb: MLOAD 000005bc: SWAP1 000005bd: PUSH1 0x20 000005bf: ADD 000005c0: SWAP1 000005c1: DUP1 000005c2: DUP4 000005c3: DUP4 000005c4: PUSH1 0x00 000005c6: JUMPDEST 000005c7: DUP4 000005c8: DUP2 000005c9: LT 000005ca: ISZERO 000005cb: PUSH2 0x05e1 000005ce: JUMPI 000005cf: DUP1 000005d0: DUP3 000005d1: ADD 000005d2: MLOAD 000005d3: DUP2 000005d4: DUP5 000005d5: ADD 000005d6: MSTORE 000005d7: PUSH1 0x20 000005d9: DUP2 000005da: ADD 000005db: SWAP1 000005dc: POP 000005dd: PUSH2 0x05c6 000005e0: JUMP 000005e1: JUMPDEST 000005e2: POP 000005e3: POP 000005e4: POP 000005e5: POP 000005e6: SWAP1 000005e7: POP 000005e8: SWAP1 000005e9: DUP2 000005ea: ADD 000005eb: SWAP1 000005ec: PUSH1 0x1f 000005ee: AND 000005ef: DUP1 000005f0: ISZERO 000005f1: PUSH2 0x060e 000005f4: JUMPI 000005f5: DUP1 000005f6: DUP3 000005f7: SUB 000005f8: DUP1 000005f9: MLOAD 000005fa: PUSH1 0x01 000005fc: DUP4 000005fd: PUSH1 0x20 000005ff: SUB 00000600: PUSH2 0x0100 00000603: EXP 00000604: SUB 00000605: NOT 00000606: AND 00000607: DUP2 00000608: MSTORE 00000609: PUSH1 0x20 0000060b: ADD 0000060c: SWAP2 0000060d: POP 0000060e: JUMPDEST 0000060f: POP 00000610: SWAP2 00000611: POP 00000612: POP 00000613: PUSH1 0x00 00000615: PUSH1 0x40 00000617: MLOAD 00000618: DUP1 00000619: DUP4 0000061a: SUB 0000061b: DUP2 0000061c: DUP6 0000061d: DUP8 0000061e: GAS 0000061f: CALL 00000620: SWAP3 00000621: POP 00000622: POP 00000623: POP 00000624: ISZERO 00000625: ISZERO 00000626: PUSH2 0x062e 00000629: JUMPI 0000062a: PUSH1 0x00 0000062c: DUP1 0000062d: REVERT 0000062e: JUMPDEST 0000062f: POP 00000630: POP 00000631: POP 00000632: JUMP 00000633: JUMPDEST 00000634: PUSH2 0x063b 00000637: PUSH2 0x041c 0000063a: JUMP 0000063b: JUMPDEST 0000063c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000651: AND 00000652: CALLER 00000653: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000668: AND 00000669: EQ 0000066a: ISZERO 0000066b: ISZERO 0000066c: PUSH2 0x0674 0000066f: JUMPI 00000670: PUSH1 0x00 00000672: DUP1 00000673: REVERT 00000674: JUMPDEST 00000675: PUSH1 0x00 00000677: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000068c: AND 0000068d: DUP2 0000068e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006a3: AND 000006a4: EQ 000006a5: ISZERO 000006a6: ISZERO 000006a7: ISZERO 000006a8: PUSH2 0x06b0 000006ab: JUMPI 000006ac: PUSH1 0x00 000006ae: DUP1 000006af: REVERT 000006b0: JUMPDEST 000006b1: PUSH2 0x06b9 000006b4: DUP2 000006b5: PUSH2 0x0879 000006b8: JUMP 000006b9: JUMPDEST 000006ba: PUSH32 0x5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9 000006db: PUSH2 0x06e2 000006de: PUSH2 0x041c 000006e1: JUMP 000006e2: JUMPDEST 000006e3: DUP3 000006e4: PUSH1 0x40 000006e6: MLOAD 000006e7: DUP1 000006e8: DUP4 000006e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006fe: AND 000006ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000714: AND 00000715: DUP2 00000716: MSTORE 00000717: PUSH1 0x20 00000719: ADD 0000071a: DUP3 0000071b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000730: AND 00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000746: AND 00000747: DUP2 00000748: MSTORE 00000749: PUSH1 0x20 0000074b: ADD 0000074c: SWAP3 0000074d: POP 0000074e: POP 0000074f: POP 00000750: PUSH1 0x40 00000752: MLOAD 00000753: DUP1 00000754: SWAP2 00000755: SUB 00000756: SWAP1 00000757: LOG1 00000758: POP 00000759: JUMP 0000075a: JUMPDEST 0000075b: PUSH1 0x00 0000075d: PUSH2 0x0764 00000760: PUSH2 0x03b3 00000763: JUMP 00000764: JUMPDEST 00000765: SWAP1 00000766: POP 00000767: DUP3 00000768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000077d: AND 0000077e: DUP2 0000077f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000794: AND 00000795: EQ 00000796: ISZERO 00000797: ISZERO 00000798: ISZERO 00000799: PUSH2 0x07a1 0000079c: JUMPI 0000079d: PUSH1 0x00 0000079f: DUP1 000007a0: REVERT 000007a1: JUMPDEST 000007a2: PUSH2 0x07aa 000007a5: DUP4 000007a6: PUSH2 0x08ba 000007a9: JUMP 000007aa: JUMPDEST 000007ab: DUP2 000007ac: PUSH1 0x00 000007ae: SWAP1 000007af: DUP1 000007b0: MLOAD 000007b1: SWAP1 000007b2: PUSH1 0x20 000007b4: ADD 000007b5: SWAP1 000007b6: PUSH2 0x07c0 000007b9: SWAP3 000007ba: SWAP2 000007bb: SWAP1 000007bc: PUSH2 0x0921 000007bf: JUMP 000007c0: JUMPDEST 000007c1: POP 000007c2: DUP3 000007c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007d8: AND 000007d9: PUSH32 0xfeb57eb540ad2b58d897c813a06ff64690ef5de12413a361591aea28ee60748a 000007fa: DUP4 000007fb: PUSH1 0x40 000007fd: MLOAD 000007fe: DUP1 000007ff: DUP1 00000800: PUSH1 0x20 00000802: ADD 00000803: DUP3 00000804: DUP2 00000805: SUB 00000806: DUP3 00000807: MSTORE 00000808: DUP4 00000809: DUP2 0000080a: DUP2 0000080b: MLOAD 0000080c: DUP2 0000080d: MSTORE 0000080e: PUSH1 0x20 00000810: ADD 00000811: SWAP2 00000812: POP 00000813: DUP1 00000814: MLOAD 00000815: SWAP1 00000816: PUSH1 0x20 00000818: ADD 00000819: SWAP1 0000081a: DUP1 0000081b: DUP4 0000081c: DUP4 0000081d: PUSH1 0x00 0000081f: JUMPDEST 00000820: DUP4 00000821: DUP2 00000822: LT 00000823: ISZERO 00000824: PUSH2 0x083a 00000827: JUMPI 00000828: DUP1 00000829: DUP3 0000082a: ADD 0000082b: MLOAD 0000082c: DUP2 0000082d: DUP5 0000082e: ADD 0000082f: MSTORE 00000830: PUSH1 0x20 00000832: DUP2 00000833: ADD 00000834: SWAP1 00000835: POP 00000836: PUSH2 0x081f 00000839: JUMP 0000083a: JUMPDEST 0000083b: POP 0000083c: POP 0000083d: POP 0000083e: POP 0000083f: SWAP1 00000840: POP 00000841: SWAP1 00000842: DUP2 00000843: ADD 00000844: SWAP1 00000845: PUSH1 0x1f 00000847: AND 00000848: DUP1 00000849: ISZERO 0000084a: PUSH2 0x0867 0000084d: JUMPI 0000084e: DUP1 0000084f: DUP3 00000850: SUB 00000851: DUP1 00000852: MLOAD 00000853: PUSH1 0x01 00000855: DUP4 00000856: PUSH1 0x20 00000858: SUB 00000859: PUSH2 0x0100 0000085c: EXP 0000085d: SUB 0000085e: NOT 0000085f: AND 00000860: DUP2 00000861: MSTORE 00000862: PUSH1 0x20 00000864: ADD 00000865: SWAP2 00000866: POP 00000867: JUMPDEST 00000868: POP 00000869: SWAP3 0000086a: POP 0000086b: POP 0000086c: POP 0000086d: PUSH1 0x40 0000086f: MLOAD 00000870: DUP1 00000871: SWAP2 00000872: SUB 00000873: SWAP1 00000874: LOG2 00000875: POP 00000876: POP 00000877: POP 00000878: JUMP 00000879: JUMPDEST 0000087a: PUSH1 0x00 0000087c: PUSH1 0x40 0000087e: MLOAD 0000087f: DUP1 00000880: DUP1 00000881: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e6f776e65720000000000000000 000008a2: DUP2 000008a3: MSTORE 000008a4: POP 000008a5: PUSH1 0x18 000008a7: ADD 000008a8: SWAP1 000008a9: POP 000008aa: PUSH1 0x40 000008ac: MLOAD 000008ad: DUP1 000008ae: SWAP2 000008af: SUB 000008b0: SWAP1 000008b1: KECCAK256 000008b2: SWAP1 000008b3: POP 000008b4: DUP2 000008b5: DUP2 000008b6: SSTORE 000008b7: POP 000008b8: POP 000008b9: JUMP 000008ba: JUMPDEST 000008bb: PUSH1 0x00 000008bd: PUSH1 0x40 000008bf: MLOAD 000008c0: DUP1 000008c1: DUP1 000008c2: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e696d706c656d656e746174696f 000008e3: DUP2 000008e4: MSTORE 000008e5: PUSH1 0x20 000008e7: ADD 000008e8: PUSH32 0x6e00000000000000000000000000000000000000000000000000000000000000 00000909: DUP2 0000090a: MSTORE 0000090b: POP 0000090c: PUSH1 0x21 0000090e: ADD 0000090f: SWAP1 00000910: POP 00000911: PUSH1 0x40 00000913: MLOAD 00000914: DUP1 00000915: SWAP2 00000916: SUB 00000917: SWAP1 00000918: KECCAK256 00000919: SWAP1 0000091a: POP 0000091b: DUP2 0000091c: DUP2 0000091d: SSTORE 0000091e: POP 0000091f: POP 00000920: JUMP 00000921: JUMPDEST 00000922: DUP3 00000923: DUP1 00000924: SLOAD 00000925: PUSH1 0x01 00000927: DUP2 00000928: PUSH1 0x01 0000092a: AND 0000092b: ISZERO 0000092c: PUSH2 0x0100 0000092f: MUL 00000930: SUB 00000931: AND 00000932: PUSH1 0x02 00000934: SWAP1 00000935: DIV 00000936: SWAP1 00000937: PUSH1 0x00 00000939: MSTORE 0000093a: PUSH1 0x20 0000093c: PUSH1 0x00 0000093e: KECCAK256 0000093f: SWAP1 00000940: PUSH1 0x1f 00000942: ADD 00000943: PUSH1 0x20 00000945: SWAP1 00000946: DIV 00000947: DUP2 00000948: ADD 00000949: SWAP3 0000094a: DUP3 0000094b: PUSH1 0x1f 0000094d: LT 0000094e: PUSH2 0x0962 00000951: JUMPI 00000952: DUP1 00000953: MLOAD 00000954: PUSH1 0xff 00000956: NOT 00000957: AND 00000958: DUP4 00000959: DUP1 0000095a: ADD 0000095b: OR 0000095c: DUP6 0000095d: SSTORE 0000095e: PUSH2 0x0990 00000961: JUMP 00000962: JUMPDEST 00000963: DUP3 00000964: DUP1 00000965: ADD 00000966: PUSH1 0x01 00000968: ADD 00000969: DUP6 0000096a: SSTORE 0000096b: DUP3 0000096c: ISZERO 0000096d: PUSH2 0x0990 00000970: JUMPI 00000971: SWAP2 00000972: DUP3 00000973: ADD 00000974: JUMPDEST 00000975: DUP3 00000976: DUP2 00000977: GT 00000978: ISZERO 00000979: PUSH2 0x098f 0000097c: JUMPI 0000097d: DUP3 0000097e: MLOAD 0000097f: DUP3 00000980: SSTORE 00000981: SWAP2 00000982: PUSH1 0x20 00000984: ADD 00000985: SWAP2 00000986: SWAP1 00000987: PUSH1 0x01 00000989: ADD 0000098a: SWAP1 0000098b: PUSH2 0x0974 0000098e: JUMP 0000098f: JUMPDEST 00000990: JUMPDEST 00000991: POP 00000992: SWAP1 00000993: POP 00000994: PUSH2 0x099d 00000997: SWAP2 00000998: SWAP1 00000999: PUSH2 0x09a1 0000099c: JUMP 0000099d: JUMPDEST 0000099e: POP 0000099f: SWAP1 000009a0: JUMP 000009a1: JUMPDEST 000009a2: PUSH2 0x09c3 000009a5: SWAP2 000009a6: SWAP1 000009a7: JUMPDEST 000009a8: DUP1 000009a9: DUP3 000009aa: GT 000009ab: ISZERO 000009ac: PUSH2 0x09bf 000009af: JUMPI 000009b0: PUSH1 0x00 000009b2: DUP2 000009b3: PUSH1 0x00 000009b5: SWAP1 000009b6: SSTORE 000009b7: POP 000009b8: PUSH1 0x01 000009ba: ADD 000009bb: PUSH2 0x09a7 000009be: JUMP 000009bf: JUMPDEST 000009c0: POP 000009c1: SWAP1 000009c2: JUMP 000009c3: JUMPDEST 000009c4: SWAP1 000009c5: JUMP 000009c6: STOP 000009c7: LOG1 000009c8: PUSH6 0x627a7a723058 000009cf: KECCAK256 000009d0: CALL 000009d1: DUP6 000009d2: UNKNOWN(0xEA) 000009d3: UNKNOWN(0xFB) 000009d4: CHAINID 000009d5: UNKNOWN(0xDD) 000009d6: UNKNOWN(0x0E) 000009d7: SMOD 000009d8: DUP1 000009d9: CLZ 000009da: UNKNOWN(0xE0) 000009db: DUP16 000009dc: DUP4 000009dd: LOG2 000009de: UNKNOWN(0x21) 000009df: PUSH6 0x8f46c74ccebc 000009e6: MULMOD 000009e7: XOR 000009e8: UNKNOWN(0x26) 000009e9: UNKNOWN(0x4D) 000009ea: RETURN 000009eb: UNKNOWN(0x2E) 000009ec: GAS 000009ed: DUP3 000009ee: SWAP11 000009ef: SWAP13 000009f0: STOP 000009f1: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets:
0xdf6fee057222d2f7933c215c11e5150bd2efc53e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x025313a2",
"selector": "0x025313a2",
"calldata_variants": [
"0x025313a2",
"0x025313a20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x36ba9794",
"selector": "0x36ba9794",
"calldata_variants": [
"0x36ba9794",
"0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7e24337",
"selector": "0xd7e24337",
"calldata_variants": [
"0xd7e24337",
"0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1739cae",
"selector": "0xf1739cae",
"calldata_variants": [
"0xf1739cae",
"0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 208,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 1150,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1618,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets:
0xcec8f07014d889442d7cf3b477b8f72f8179ea09
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xcec8f07014d889442d7cf3b477b8f72f8179ea09"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x025313a2",
"selector": "0x025313a2",
"calldata_variants": [
"0x025313a2",
"0x025313a20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x36ba9794",
"selector": "0x36ba9794",
"calldata_variants": [
"0x36ba9794",
"0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7e24337",
"selector": "0xd7e24337",
"calldata_variants": [
"0xd7e24337",
"0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1739cae",
"selector": "0xf1739cae",
"calldata_variants": [
"0xf1739cae",
"0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1567,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2512,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 1150,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1618,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets:
0xcec8f07014d889442d7cf3b477b8f72f8179ea09
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xcec8f07014d889442d7cf3b477b8f72f8179ea09"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x025313a2",
"selector": "0x025313a2",
"calldata_variants": [
"0x025313a2",
"0x025313a20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x36ba9794",
"selector": "0x36ba9794",
"calldata_variants": [
"0x36ba9794",
"0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7e24337",
"selector": "0xd7e24337",
"calldata_variants": [
"0xd7e24337",
"0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1739cae",
"selector": "0xf1739cae",
"calldata_variants": [
"0xf1739cae",
"0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1567,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2512,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 1150,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1618,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 2
}
|