Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privilege Roxy-WI account
-
DeliveryEnumerate cross-tenant server_ip values
-
ExploitPOST to unguarded install endpoint with victim server_ip
-
ExecutionRoxy-WI runs Ansible playbook with stored SSH+sudo credential
-
ImpactAchieve root command execution on victim tenant host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires (1) network access to the Roxy-WI web interface, (2) any authenticated session on the Roxy-WI application - including the default guest role 4, with no admin role required - and (3) a multi-tenant Roxy-WI deployment where the target server_ip is registered under a different tenant whose stored SSH credential has sudo on the target host (the standard Roxy-WI management configuration). Limiting factors: single-tenant deployments with no untrusted users gain nothing for an attacker since those users already have legitimate management rights; deployments that disabled or never provisioned non-admin accounts effectively reduce the unauthenticated attack surface to whatever protects login. No user interaction is needed, and the vulnerable endpoints are the install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version, and get_task_status routes in app/routes/install/routes.py. |
| Impact | The CVSS 9.9 score (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) is well aligned with the technical reality: network reachability, low complexity, only a low-privilege account required, no user interaction, and a Scope change because the bug in the web app yields root execution on downstream managed hosts via Ansible. No EPSS score, KEV listing, or POC was provided in the intelligence feed, so this is best characterized as a high-severity unpatched issue without confirmed in-the-wild use. The real-world risk is amplified for multi-tenant Roxy-WI deployments where guest accounts exist or self-registration is enabled, and dampened for single-tenant installs where every user is already trusted with full server access. Because the vendor advisory explicitly states no patch is available, defenders must treat this as an open exposure window rather than a patch-now item. |
| Exploit ScenarioDerived | An attacker obtains or is issued a low-privilege Roxy-WI account (e.g., the default guest role 4) on a multi-tenant Roxy-WI instance, enumerates server_ip values belonging to another tenant from the UI or API, then issues a POST to the install_exporter, install_waf, or install_geoip endpoint specifying the victim tenant's server_ip. Roxy-WI executes the corresponding Ansible playbook against that host using the victim tenant's stored SSH credential with sudo, giving the attacker root-equivalent command execution on a server they should have no access to. No public POC is referenced in the advisory, but the bug is trivially reproducible from the route source and requires only an authenticated HTTP request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Privilege escalation and cross-tenant compromise in Roxy-WI versions 8.2.6.4 and prior allows any authenticated user - including the default guest role 4 - to install or reconfigure exporters, WAF, and GeoIP databases on every managed server regardless of tenant ownership. Because the affected installer endpoints lack role and group decorators, low-privilege users can pivot through stored SSH credentials with sudo to achieve root-level command execution on HAProxy/Nginx/Apache hosts belonging to other tenants. No public exploit identified at time of analysis, but the issue is unpatched and rated CVSS 9.9.
RemediationAI
No vendor-released patch identified at time of analysis - the GitHub advisory GHSA-v3f8-g2v8-jq5h (https://github.com/roxy-wi/roxy-wi/security/advisories/GHSA-v3f8-g2v8-jq5h) confirms no public fix is available as of publication, so operators should monitor the advisory and the roxy-wi repository for an updated release above 8.2.6.4. Until a patched version ships, restrict the Roxy-WI web interface to trusted administrators only by removing or downgrading any guest (role 4) and non-admin accounts, disabling self-registration, and placing the UI behind a network ACL or VPN so only the platform team can reach it (trade-off: ends self-service for any legitimate low-privilege users). As a code-level workaround, operators comfortable patching locally can edit app/routes/install/routes.py to add @page_for_admin(level=2) and an is_user_has_access_to_its_group(server_ip) / check_is_server_in_group(server_ip) call to install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version, and get_task_status (trade-off: forks the codebase and must be re-applied on upgrade). If the deployment is single-tenant, rotating per-server SSH credentials and reducing sudo scope on managed hosts limits blast radius should an account be compromised.
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 web UI for managing HAProxy, Nginx, Apache, and Keepalived. The install blueprint at app/routes/install/routes.py:36-39 declares authentication globally with bp.before_request → @jwt_required(), but only the GET index page (install_monitoring) is additionally guarded by roxywi_auth.page_for_admin(level=2). The action endpoints install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version, and get_task_status omit both the page_for_admin decorator and calls to roxywi_common.is_user_has_access_to_its_group(server_ip) / check_is_server_in_group(server_ip). This is a textbook CWE-639 (Authorization Bypass Through User-Controlled Key) - the server_ip parameter is trusted without verifying that the requesting tenant owns it. Once invoked, Roxy-WI dispatches Ansible playbooks using the per-server SSH credential stored in its database, which the legitimate owner has granted sudo rights for management automation.
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 install blueprint declares only bp.before_request → @jwt_required() (app/routes/install/routes.py:36-39). The individual endpoints install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version, and get_task_status are not wrapped in page_for_admin and do not call roxywi_common.is_user_has_access_to_its_group(server_ip) or check_is_server_in_group(server_ip). Only the GET index page (install_monitoring) gates on roxywi_auth.page_for_admin(level=2). Because the missing decorators omit both role and group checks, any logged-in user - including the default guest role 4 - can install/reconfigure exporters, WAF, and GeoIP databases on every server in the Roxy-WI database, regardless of tenant ownership. The Ansible playbooks run with the per-server SSH credential stored in Roxy-WI, which the credentials' rightful owner (a different tenant) has provisioned with sudo rights for the management workflow. 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 cross-tenant privilege escalation vulnerability (CVSS 9.9) allowing any authenticated user-including default guest accounts-to install or reconfigure infrastructure components and execute root-level commands on managed servers regardless of tenant ownership. This breaks multi-tenant isolation and allows low-privilege accounts to compromise all organizational infrastructure; no public exploit identified at time of analysis, but the unpatched status creates immediate operational risk.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) disable default guest accounts and enforce multi-factor authentication; (2) implement network segmentation restricting installer endpoint access; (3) rotate SSH credentials and remove from Roxy-WI; (4) deploy reverse proxy/API gateway authentication layer; (5) enable continuous audit log monitoring for unauthorized access; (6) scan HAProxy/Nginx/Apache hosts for unauthorized configuration changes.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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 low-privilege users (role ≤ 3) to injec
Remote code execution in Roxy-WI versions 8.2.6.4 and prior allows authenticated users to write attacker-controlled cont
Roxy-WI through 5.2.2.0 allows SQL Injection via check_login. Rated critical severity (CVSS 9.8), this vulnerability is
EUVD-2026-36035
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB