CVE-2026-45558

Source
https://cve.org/CVERecord?id=CVE-2026-45558
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45558.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-45558
Aliases
  • GHSA-w2x4-66jj-3597
Published
2026-06-10T14:01:42.317Z
Modified
2026-07-15T01:49:18.392488961Z
Severity
  • 9.9 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H CVSS Calculator
Summary
Roxy-WI: Authenticated RCE on every managed HAProxy load balancer via `option` field config injection in section save
Details

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.

Database specific
{
    "cwe_ids": [
        "CWE-20",
        "CWE-77",
        "CWE-78",
        "CWE-94"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45558.json",
    "cna_assigner": "GitHub_M"
}
References

Affected packages

Git / github.com/roxy-wi/roxy-wi

Affected ranges

Type
GIT
Repo
https://github.com/roxy-wi/roxy-wi
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
Database specific
{
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "last_affected": "8.2.6.4"
        }
    ],
    "source": "AFFECTED_FIELD"
}

Affected versions

3.*
3.4.4.6
3.4.4.7
3.4.5
3.4.5.1
v.*
v.5.3.5.0
v1.*
v1.0
v1.1
v1.10
v1.10.1
v1.10.2
v1.10.2.1
v1.3
v1.4
v1.4.1
v1.6
v1.9.1
v2.*
v2.0.2
v3.*
v3.2.13
v3.3
v4.*
v4.4.1.0
v5.*
v5.1.1.0
v5.1.4.0
v5.2.0
v5.2.1
v5.2.2.0
v5.2.3.0
v5.2.4.0
v5.2.5.0
v5.2.6.0
v5.3.0.0
v5.3.1.0
v5.3.2.0
v5.3.3.0
v5.3.4.0
v5.3.6.0
v5.4.0.0
v5.4.1.0
v5.4.2.0
v5.4.3.0
v5.5.0.0
v5.5.1.0
v6.*
v6.0.0.0
v6.0.1.0
v6.0.2.0
v6.0.3.0
v6.1.0.0
v6.1.1.0
v6.1.2.0
v6.1.3.0
v6.1.4.0
v6.1.5.0
v6.2.0.0
v6.2.1.0
v6.2.2.0
v6.2.3.0
v6.3.0.0
v6.3.1.0
v6.3.10.0
v6.3.11.0
v6.3.12.0
v6.3.13.0
v6.3.14.0
v6.3.15.0
v6.3.16.0
v6.3.17.0
v6.3.18.0
v6.3.19.0
v6.3.2.0
v6.3.3.0
v6.3.4.0
v6.3.5.0
v6.3.6.0
v6.3.7.0
v6.3.8.0
v6.3.9.0
v7.*
v7.0.0.0
v7.0.1.0
v7.0.2.0
v7.0.3.0
v7.0.4.0
v7.1.0.0
v7.1.1.0
v7.1.2.0
v7.2.0.0
v7.2.1.0
v7.2.2.0
v7.2.3.0
v7.2.4.0
v7.2.5.0
v7.2.6.0
v7.3.0.0
v7.3.1.0
v7.3.2.0
v8.*
v8.0
v8.0.1
v8.0.2
v8.1
v8.1.0.1
v8.1.1
v8.1.2
v8.1.3
v8.1.4
v8.1.5
v8.1.6
v8.1.7
v8.1.8
v8.2.0
v8.2.1
v8.2.2
v8.2.3
v8.2.4
v8.2.5
v8.2.6
v8.2.6.3
v8.2.6.4
v8.2.8.1
v8.2.8.2

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45558.json"