Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or compromise admin credentials
-
DeliveryAuthenticate to CtrlPanel admin panel
-
ExploitSend crafted POST request with malicious settings_class value
-
ExecutionPHP resolves class name via Composer autoloader
-
PersistTrigger magic method or constructor gadget chain
-
ImpactExecute arbitrary code in web server process context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | Exploitation requires a valid admin-level authenticated session on the CtrlPanel instance - confirmed by the CVSS vector PR:H (High Privileges Required). The vulnerable code path is the admin settings update endpoint, which must be reachable over the network (AV:N). High attack complexity (AC:H) reflects the additional requirement that the attacker must identify at least one exploitable gadget class within the specific Composer dependency tree of the target installation; the available gadget surface varies by which packages and versions are installed. No user interaction is required beyond the attacker's own authenticated HTTP request. Exploitation is limited by: (1) the necessity of admin credentials, which restricts the attacker pool to privileged insiders or accounts compromised via credential theft/phishing; (2) the need to enumerate viable gadget chains for the specific dependency versions deployed; and (3) the requirement that the PHP web process has sufficient OS-level permissions to execute the triggered code meaningfully. |
| Impact | The CVSS 3.1 base score of 6.6 is derived from a vector of AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H, which accurately reflects the significant mitigating factors: attack complexity is rated High (AC:H), indicating that successful exploitation requires conditions beyond simple network access - specifically, the attacker must identify a viable gadget chain within the installed dependency tree. Privileges required are rated High (PR:H), meaning only admin-level authenticated users can trigger this endpoint. These two factors substantially reduce real-world risk compared to the full CIA impact (all High). No EPSS score was provided in the input data; the absence of KEV listing and the high privilege bar suggest this is unlikely to see opportunistic mass exploitation. The primary realistic threat vector is a compromised or malicious administrator account, or an insider threat scenario. The dependency on gadget chain availability introduces environmental variability - risk increases with a richer dependency tree (e.g., Laravel with Symfony components installed). Overall, this is a high-severity finding for any CtrlPanel instance where admin account security is not tightly controlled, but lower-priority than unauthenticated or low-privilege RCE vulnerabilities. |
| Exploit ScenarioDerived | An attacker with valid CtrlPanel admin credentials sends a crafted POST request to the admin settings update endpoint, supplying a settings_class parameter containing the fully qualified name of a gadget class present in the Composer autoloader - for example, a Symfony or Laravel component with a dangerous __construct or __wakeup implementation. PHP instantiates the attacker-specified class, triggering the gadget chain, which may result in arbitrary file writes, command execution, or SSRF depending on available dependency classes. No public proof-of-concept exploit has been identified, but the attack pattern (PHP class injection via Composer autoloader) is well-understood and gadget finders for common Laravel dependency trees are publicly documented. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 19, 2026
Remote code execution in CtrlPanel versions 1.1.1 and prior allows authenticated administrators to execute arbitrary PHP code by supplying a fully qualified class name to the admin settings update endpoint, which instantiates or invokes static methods on that class without allowlist validation. Any class resolvable by the Composer autoloader - including third-party dependencies - can be targeted, enabling gadget-chain exploitation through PHP magic methods such as __construct, __toString, or __wakeup. No public exploit code has been identified at time of analysis and the vulnerability is not listed in the CISA KEV catalog; however, the fix is confirmed in version 1.2.0, released April 2026.
RemediationAI
Upgrade to CtrlPanel version 1.2.0, which is confirmed to include this security fix per the official release at https://github.com/Ctrlpanel-gg/panel/releases/tag/1.2.0 and the security advisory at https://github.com/Ctrlpanel-gg/panel/security/advisories/GHSA-vcg3-fjrx-rg5q. The 1.2.0 release also contains a license change from AGPL 3.0 to MPL 2.0 and numerous bug fixes, so administrators should review the full release notes before upgrading. If immediate patching is not possible, restrict access to the admin settings update endpoint at the web server or reverse proxy layer to trusted IP ranges only - note this does not eliminate the vulnerability but raises the barrier significantly for network-based attackers. Additionally, audit and rotate all admin-level credentials to reduce the likelihood of compromised accounts being leveraged. Reducing the number of installed Composer packages (slimming the dependency tree) limits gadget chain availability but is not a reliable standalone control due to the difficulty of enumerating all dangerous chains across transitive dependencies.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-470 (Use of Externally-Controlled Input to Select Classes or Code), a class of vulnerability where attacker-controlled input directly determines which class the application loads and executes. The affected code path is the update() method of the admin settings controller, which reads a settings_class parameter directly from the HTTP request body and passes it unsanitized to both new $settings_class() and $settings_class::getValidations(). PHP's Composer autoloader resolves class names at runtime against the entire dependency tree, meaning the attack surface includes every autoloadable class in the application and all installed packages. This follows the well-documented PHP Object Injection / gadget chain pattern, where constructors or magic methods in benign dependency classes can be chained to achieve file writes, SSRF, or arbitrary command execution. The affected CPE is cpe:2.3:a:ctrlpanel-gg:panel:*:*:*:*:*:*:*:* covering all panel versions through 1.1.1.
Know when PHP gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
CtrlPanel is open-source billing software for hosting providers. In versions 1.1.1 and prior, the admin settings update endpoint accepted a fully qualified class name directly from user-supplied request input and used it for dynamic static method calls and object instantiation without any allowlist validation, allowing for authenticated Remote Code Execution. An authenticated admin-level user could supply an arbitrary class name available in the Composer autoloader, potentially triggering unintended constructor or magic method execution. The update() method reads settings_class directly from the HTTP request and passed it to new $settings_class() and $settings_class::getValidations() without verifying that the provided value corresponds to a legitimate settings class: Because PHP resolves class names against the Composer autoloader at runtime, any autoloadable class in the application or its dependencies could be instantiated. Depending on the classes available in the dependency tree, this can trigger unintended side effects through constructors or magic methods (__construct, __toString, __wakeup), following a PHP object injection / gadget chain pattern. This issue has been fixed in version 1.2.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-30983
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB