Skip to main content

Roxy-WI CVE-2026-45549

| EUVDEUVD-2026-36036 HIGH
Missing Authorization (CWE-862)
2026-06-10 GitHub_M
8.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
8.5 HIGH
AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
Low
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jun 10, 2026 - 15:12 vuln.today
CVE Published
Jun 10, 2026 - 13:59 nvd
HIGH 8.5

DescriptionNVD

Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. In versions 8.2.6.4 and prior, agent_action (app/routes/smon/agent_routes.py:166-179) has decorators @bp.post('/agent/action/<action>') and @jwt_required() only - no role check, no group ownership check on the server_ip form field. Any authenticated user, including role 4 (guest), can start, stop, or restart the roxy-wi-smon-agent systemd unit on any server they can name. Roxy-WI executes the systemd action over its own SSH credentials (passwordless sudo), so the action runs as root on the target. At time of publication, there are no publicly available patches.

AnalysisAI

Privilege escalation in Roxy-WI versions 8.2.6.4 and prior allows any authenticated user - including the lowest-privilege 'guest' role 4 - to start, stop, or restart the roxy-wi-smon-agent systemd unit on arbitrary managed servers, with the action executing as root via Roxy-WI's passwordless sudo SSH credentials. The flaw stems from missing role and group-ownership checks on the agent_action endpoint, and no public exploit has been identified at time of analysis though the vulnerability is trivially reachable once an account exists.

Technical ContextAI

Roxy-WI is a Python/Flask-based web interface (cpe:2.3:a:roxy-wi:roxy-wi) for centrally managing HAProxy, Nginx, Apache, and Keepalived deployments. The defect lives in app/routes/smon/agent_routes.py at lines 166-179, where the agent_action handler is decorated only with @bp.post('/agent/action/<action>') and @jwt_required(), meaning a valid JWT is the sole gate. The root cause is CWE-862 (Missing Authorization): neither a role-based access check nor a group-ownership check on the user-supplied server_ip form field is performed before the request is dispatched. Because Roxy-WI fans out the resulting systemd command over its own SSH session - which is configured with passwordless sudo on every managed host - the action ultimately executes with full root privileges on whichever target IP the attacker names.

RemediationAI

No vendor-released patch identified at time of analysis - the advisory explicitly states no public patches exist as of publication, so administrators should monitor https://github.com/roxy-wi/roxy-wi/security/advisories/GHSA-c92j-h72m-ff4j for a fixed release beyond 8.2.6.4. As compensating controls, restrict Roxy-WI account creation strictly to trusted operators and audit existing role 4 (guest) accounts for removal or downgrade - the side effect is loss of read-only visibility for less-trusted staff. Place the Roxy-WI web interface behind a VPN or IP allowlist so the /agent/action/<action> endpoint cannot be reached from untrusted networks (side effect: remote operators must connect via VPN). Where feasible, tighten the SSH key Roxy-WI uses to manage targets by replacing passwordless sudo with a sudoers entry that whitelists only the specific systemctl commands actually required, limiting the blast radius if the endpoint is abused (side effect: any new Roxy-WI features needing additional sudo commands will fail until sudoers is updated). Finally, monitor systemd journal entries for unexpected roxy-wi-smon-agent start/stop/restart events as a detective control.

More in Nginx

View all
CVE-2013-2028 HIGH POC
7.5 Jul 20

The ngx_http_parse_chunked function in http/ngx_http_parse.c in nginx 1.3.9 through 1.4.0 allows remote attackers to cau

CVE-2025-1974 CRITICAL POC
9.8 Mar 25

A critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access

CVE-2013-4547 HIGH POC
7.5 Nov 23

nginx 0.8.41 through 1.4.3 and 1.5.x before 1.5.7 allows remote attackers to bypass intended restrictions via an unescap

CVE-2023-50919 CRITICAL POC
9.8 Jan 12

An issue was discovered on GL.iNet devices before version 4.5.0. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2017-7529 HIGH
7.5 Jul 13

Nginx versions since 0.5.6 up to and including 1.13.2 are vulnerable to integer overflow vulnerability in nginx range fi

CVE-2016-0742 HIGH
7.5 Feb 15

The resolver in nginx before 1.8.1 and 1.9.x before 1.9.10 allows remote attackers to cause a denial of service (invalid

CVE-2025-1098 HIGH POC
8.8 Mar 25

Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress

CVE-2025-24514 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres

CVE-2025-1097 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c

CVE-2022-31137 CRITICAL POC
9.8 Jul 08

Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated critical severity (CVSS 9.8

CVE-2014-3556 MEDIUM
6.8 Dec 29

The STARTTLS implementation in mail/ngx_mail_smtp_handler.c in the SMTP proxy in nginx 1.5.x and 1.6.x before 1.6.1 and

CVE-2026-42945 CRITICAL POC
9.2 May 13

Heap buffer overflow in NGINX Plus and NGINX Open Source ngx_http_rewrite_module allows remote attackers to crash worker

Share

CVE-2026-45549 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy