Summary
CVE-2026-43643 is a missing-authorization vulnerability (CWE-862) in the billing module handler of Softaculous Virtualizor, a widely used web-based VPS/hypervisor control panel. Unauthenticated attackers can send crafted requests to the admin panel to modify any tenant’s account balance, which can trigger automated service suspension logic and disrupt customer VPS operations. The issue carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 score of 8.7 (High), reflecting the fact that no credentials or user interaction are required to exploit it over the network.
Technical details
- Root cause: The billing hook processes an
act=loginrequest path intended for billing-system integrations (e.g., WHMCS), but the handler that updates a tenant’s balance does not verify that the caller is authenticated or authorized to modify the targeted account. - Trigger conditions: An attacker sends an unauthenticated POST request to the Virtualizor admin panel’s billing hook, supplying attacker-controlled
uidandbalancevalues (via serializedbilling_data). The backend executes a database update (UPDATE users SET cur_bal = :balance WHERE uid = :uid) without confirming account ownership. - Attack vector: Network-based, no authentication, no user interaction, low attack complexity.
- Impact: Attackers can zero out or arbitrarily inflate any tenant’s account balance. This can be abused to force incorrect balance states that feed into Virtualizor’s automated suspension/unsuspension logic, disrupting service availability for legitimate customers and undermining billing integrity. The primary CVSS impact is to Integrity; confidentiality and availability are not directly scored as impacted, though downstream service suspension is a realistic consequence.
- This flaw was disclosed alongside two related issues in the same code path — an unauthenticated OS command injection to root, and an unauthenticated PHP object injection via
unserialize()— all traced to the same mis-scoped authentication guard aroundact=loginrequests.
Affected software
- Softaculous Virtualizor: all versions prior to 3.2.9 (Patch 9)
- Confirmed affected builds include Virtualizor 3.2.9 Patch 7 and Patch 8
Severity
- CVSS v3.1 Base Score: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS v4.0 Base Score: 8.7 (High) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade Virtualizor to 3.2.9 (Patch 9) or 3.3.0, both of which fix the issue by requiring the billing hook to pass
apicall_validate()and by validating that the submitteduidmatches the account owner’s actual identity before any balance update is executed. - If immediate patching is not possible: Restrict network access to the Virtualizor admin panel (typically on port 4083/4084) to trusted management networks only, disable or firewall the billing/WHMCS integration hook if not in active use, and monitor for unexpected changes to tenant account balances or unexplained service suspensions as an indicator of exploitation attempts.

