Unauthenticated Remote Command Execution in Softaculous Virtualizor
CVE-2026-43641 is an OS command injection vulnerability in the Virtualizor billing module that allows unauthenticated remote attackers to achieve root-level code execution via serialized billing data.
CVE search metadata
CVE search record: CVE-2026-43641. Severity: critical. CVSS: 9.8. KEV: no. Product: Virtualizor (< 3.2.9 (Patch 9)). Brief: Unauthenticated Remote Command Execution in Softaculous Virtualizor. Brief link: https://feed.craftedsignal.io/briefs/2026-09-virtualizor-rce/
Softaculous Virtualizor versions prior to 3.2.9 (Patch 9) contain a critical OS command injection vulnerability, tracked as CVE-2026-43641. The vulnerability resides within the application's billing module handler. An unauthenticated remote attacker can bypass existing authentication mechanisms by providing specific, maliciously crafted parameter combinations within a serialized 'billing_data' POST request.
The injection occurs when the 'uid' field, contained within the deserialized billing data, is passed without adequate sanitization to the application's 'vexec()' function, which subsequently invokes 'proc_open()'. Because the application runs with administrative privileges, successful exploitation grants the attacker root access to the underlying Virtualizor host. This level of access provides complete control over the host server and all virtual private server (VPS) instances managed by the compromised Virtualizor platform. Given the ease of access and the critical severity, organizations using affected versions should prioritize immediate patching.
Attack Chain
- The attacker targets an internet-facing Virtualizor instance running a vulnerable version (< 3.2.9).
- The attacker crafts a malicious HTTP POST request containing a serialized 'billing_data' payload.
- The payload includes a specially crafted 'uid' parameter containing shell command metacharacters.
- The Virtualizor billing module deserializes the malicious 'billing_data' input.
- The application passes the unsanitized 'uid' parameter to the 'vexec()' helper function.
- The 'vexec()' function passes the input to 'proc_open()', triggering command execution.
- The system executes the injected commands as the root user.
- The attacker gains full control over the host and all managed VPS environments.
Impact
Successful exploitation of CVE-2026-43641 results in total system compromise. An attacker gains root access to the Virtualizor host, enabling them to exfiltrate data, install persistent backdoors, or destroy managed VPS instances. The impact is significant for service providers, as a single compromised Virtualizor host can lead to the widespread breach of multiple downstream client environments hosted on the platform.
Recommendation
Prioritize the immediate application of the vendor-supplied security update to patch CVE-2026-43641. Upgrade all Virtualizor instances to version 3.2.9 (Patch 9) or later. Configure perimeter firewalls or web application firewalls to inspect and drop incoming POST requests to the billing module that contain unexpected serialized data or suspicious shell-related characters in the 'uid' field. Monitor web server access logs for anomalous POST requests directed at billing endpoints that correlate with the vulnerability patterns identified in this brief.
Immediate actions
Upgrade Virtualizor to 3.2.9 (Patch 9) or later.
Mitigations
Patch to 3.2.9 (Patch 9)
CVE-2026-43641
Detection coverage 1
Detects CVE-2026-43641 Exploitation - Command Injection via billing_data
criticalDetects exploitation attempts targeting CVE-2026-43641 by identifying suspicious serialized billing_data containing shell metacharacters in the uid field
Detection queries are available on the platform. Get full rules →