Summary
CVE-2026-43642 is an unauthenticated PHP object injection (deserialization of untrusted data) vulnerability in the billing module of Softaculous Virtualizor, a commercially licensed VPS/hypervisor control panel whose web management layer runs as root. The flaw allows a remote, unauthenticated attacker to reach a raw unserialize() call on attacker-controlled POST data, which could enable remote code execution if a usable PHP object (POP) gadget chain is present. The issue is rated critical (CVSS v4.0 base score 9.2) and affects all Virtualizor builds up to and including 3.2.9 Patch 8.
Technical details
- Root cause: The billing hook handler in
enduser/admin.phppasses the POST parameterbilling_datadirectly intounserialize()(wrapped in a local_unserialize()function) without anallowed_classesrestriction, allowing arbitrary PHP object instantiation from attacker-supplied serialized data (CWE-502). - Authentication bypass entry point: A mis-scoped authentication guard exempts the
act=loginaction from Virtualizor’s normal login/session checks. By sendingact=logintogether with thefrom_billing_moduleparameter, an attacker reaches theupdate_data_for_billing_modules()billing-hook code path without any credentials (CWE-306). - Trigger conditions: A single unauthenticated HTTP POST request to the Virtualizor admin/enduser web interface containing
act=login,from_billing_module, and a craftedbilling_datavalue. - Attack vector: Network — no authentication, no user interaction required.
- Impact: Because Virtualizor’s web service runs with root privileges, successful exploitation with a valid deserialization gadget chain could result in full remote code execution as root on the host. Researchers who discovered the flaw noted that no working gadget chain was demonstrated in the stock Virtualizor codebase at disclosure time, but the unauthenticated deserialization primitive itself is real and exploitability could increase with third-party add-ons/plugins or future code changes that introduce a suitable class.
- This vulnerability was discovered alongside two related, unauthenticated bugs (an OS command-injection-to-root issue and a cross-tenant balance-write issue) that share the same mis-scoped authentication guard as their entry point.
Affected software
- Softaculous Virtualizor — all versions prior to 3.2.9 Patch 9, including 3.2.9 Patch 7 and 3.2.9 Patch 8 (confirmed vulnerable builds)
- Version 3.0.0 is noted by the CVE record as not affected
Severity
- CVSS v4.0: 9.2 (Critical) —
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS v3.1: 8.1 (High) —
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Upgrade Virtualizor to 3.2.9 Patch 9 or later (including 3.3.0), which authenticates the billing-hook code path and restricts deserialization by enforcing
allowed_classes => falseon thebilling_datapayload. - If patching is not immediately possible:
- Restrict network access to the Virtualizor admin/enduser web interface to trusted management networks or VPN, blocking direct exposure to the public internet.
- Use a web application firewall or reverse proxy rule to block requests to the admin endpoint containing
act=logincombined withfrom_billing_module/billing_dataparameters from untrusted sources. - Monitor Virtualizor logs for unauthenticated POST requests to
enduser/admin.phpreferencingbilling_data, and treat any pre-Patch-9 instance reachable from the internet as at risk of unauthenticated root compromise.

