Skip to content
Heist/ feed
Back to feed
High

Roxy-WI: Authorization bypass on POST /smon/agent/action/ — guest can stop or restart smon-agent on any host

Type: advisorySources: OSV

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/') 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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-45549
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 11:05 UTC · Revision 1

Source evidence

Roxy-WI: Authorization bypass on POST /smon/agent/action/ — guest can stop or restart smon-agent on any host

core-osv · Original source

Published 10 Jun 2026, 13:59 UTC

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/') 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.

osv:CVE-2026-45549
Complete source record
{
  "id": "b64948b075233299ff07d6923b00682378044b55d953f411c72679e3a94bf122",
  "url": "https://osv.dev/vulnerability/CVE-2026-45549",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Roxy-WI: Authorization bypass on POST /smon/agent/action/ — guest can stop or restart smon-agent on any host",
    "summary": "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/') 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.",
    "evidence": "osv:CVE-2026-45549",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-45549",
      "aliases": [
        "CVE-2026-45549",
        "GHSA-c92j-h72m-ff4j"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/roxy-wi/roxy-wi",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "d72ea494d0bf1ee220fe141625a4298600f624ad"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "8.2.6.4"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "8.2.6.4"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v8.2.6.4",
            "v8.2.6.3",
            "v8.2.8.2",
            "v8.2.8.1",
            "v8.2.6",
            "v8.2.5",
            "v8.2.4",
            "v8.2.3",
            "v8.2.2",
            "v8.2.1",
            "v8.2.0",
            "v8.1.8",
            "v8.1.7",
            "v8.1.6",
            "v8.1.5",
            "v8.1.4",
            "v8.1.3",
            "v8.1.2",
            "v8.1.1",
            "v8.1.0.1",
            "v8.1",
            "v8.0.2",
            "v8.0.1",
            "v8.0",
            "v7.3.2.0",
            "v7.3.1.0",
            "v7.3.0.0",
            "v7.2.6.0",
            "v7.2.5.0",
            "v7.2.4.0",
            "v7.2.3.0",
            "v7.2.2.0",
            "v7.2.1.0",
            "v7.2.0.0",
            "v7.1.2.0",
            "v7.1.1.0",
            "v7.1.0.0",
            "v7.0.4.0",
            "v7.0.3.0",
            "v7.0.2.0",
            "v7.0.1.0",
            "v7.0.0.0",
            "v6.3.19.0",
            "v6.3.18.0",
            "v6.3.17.0",
            "v6.3.16.0",
            "v6.3.15.0",
            "v6.3.14.0",
            "v6.3.13.0",
            "v6.3.12.0",
            "v6.3.11.0",
            "v6.3.10.0",
            "v6.3.9.0",
            "v6.3.8.0",
            "v6.3.7.0",
            "v6.3.6.0",
            "v6.3.5.0",
            "v6.3.4.0",
            "v6.3.3.0",
            "v6.3.2.0",
            "v6.3.1.0",
            "v6.3.0.0",
            "v6.2.3.0",
            "v6.2.2.0",
            "v6.2.1.0",
            "v6.2.0.0",
            "v6.1.5.0",
            "v6.1.4.0",
            "v6.1.3.0",
            "v6.1.2.0",
            "v6.1.1.0",
            "v6.1.0.0",
            "v6.0.3.0",
            "v6.0.2.0",
            "v6.0.1.0",
            "v6.0.0.0",
            "v5.5.1.0",
            "v5.5.0.0",
            "v5.4.3.0",
            "v5.4.2.0",
            "v5.4.1.0",
            "v5.4.0.0",
            "v5.3.6.0",
            "v.5.3.5.0",
            "v5.3.4.0",
            "v5.3.3.0",
            "v5.3.2.0",
            "v5.3.1.0",
            "v5.3.0.0",
            "v5.2.6.0",
            "v5.2.5.0",
            "v5.2.4.0",
            "v5.2.3.0",
            "v5.2.2.0",
            "v5.2.1",
            "v5.2.0",
            "v5.1.4.0",
            "v5.1.1.0",
            "v4.4.1.0",
            "3.4.5.1",
            "3.4.5",
            "3.4.4.7",
            "3.4.4.6",
            "v3.3",
            "v3.2.13",
            "v2.0.2",
            "v1.10.2.1",
            "v1.10.2",
            "v1.10.1",
            "v1.10",
            "v1.9.1",
            "v1.6",
            "v1.4.1",
            "v1.4",
            "v1.3",
            "v1.1",
            "v1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45549.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:34.548230180Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45549.json",
        "https://github.com/roxy-wi/roxy-wi/security/advisories/GHSA-c92j-h72m-ff4j",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-45549"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-862",
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45549.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-45549",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 501934,
  "published_at": "2026-06-10T13:59:41.496+00:00"
}