Description
genieacs-mcp is an MCP server for GenieACS written in Go. Prior to 0.3.2, the Streamable HTTP transport in cmd/server/main.go creates an unauthenticated /mcp listener on the default MCP_LISTEN_ADDR value 127.0.0.1:8080 when MCP_AUTH_TOKEN is unset and the httpSrv.Start(addr) branch does not validate the Host or Origin headers. A malicious website can use DNS rebinding to send browser requests with attacker-controlled Host and Origin values to the loopback listener, initialize an MCP session, list tools, and invoke operations against the GenieACS NBI configured by ACS_URL. Successful exploitation can expose or modify CPE management state, including device reboots, firmware tasks, TR-069 parameter changes, presets, provisions, tags, connection requests, and task operations. The npm wrapper is not affected because it forces TRANSPORT=stdio and does not expose an HTTP listener. This issue is fixed in version 0.3.2.
Published: 2026-08-25
Score: 8.8 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability arises because the Streamable HTTP transport in genieacs-mcp creates an unauthenticated /mcp listener when the MCP_AUTH_TOKEN environment variable is not set, and in that state it fails to validate the Host or Origin headers. The weakness is a form of CWE-346, which allows an attacker to supply arbitrary header values when the service is reachable. By performing DNS rebinding, a malicious web page can force the victim’s browser to send requests to the loopback address 127.0.0.1:8080, establishing a session with the MCP server without authentication. Through this session, the attacker can enumerate and invoke operations on the GenieACS Network Binary Interface, potentially exposing or altering configuration data, triggering firmware updates, rebooting devices, and modifying TR-069 parameters, thereby gaining full control over connected equipment.

Affected Systems

The issue affects the GenieACS MCP server distributed by GeiserX prior to version 0.3.2. The vulnerability is triggered when the application listens on the default address 127.0.0.1:8080 and MCP_AUTH_TOKEN is omitted, exposing an unauthenticated /mcp endpoint. Versions 0.3.2 and later have removed this listener and added validation of Host and Origin headers, eliminating the flaw.

Risk and Exploitability

The CVSS score of 8.8 reflects a high severity risk, while the EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves a DNS rebinding attack that exploits browser handling of loopback addresses, allowing an attacker to send malicious Host and Origin headers. Because there is no authentication and no header validation, the attacker can gain unrestricted access to MCP operations, which can compromise the managed devices and the broader network.

Generated by OpenCVE AI on August 25, 2026 at 20:31 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade GenieACS MCP to version 0.3.2 or later, which removes the unauthenticated listener and implements Host/Origin validation.
  • If upgrading immediately is not feasible, set the environment variable MCP_AUTH_TOKEN so that the service will not expose the unauthenticated /mcp endpoint.
  • Configure network policies or a firewall to restrict or block access to 127.0.0.1:8080 from external sources, ensuring that only authorized hosts can reach the MCP listener.

Generated by OpenCVE AI on August 25, 2026 at 20:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cmwv-wf9p-p8wx genieacs-mcp: DNS rebinding reaches local GenieACS MCP Streamable HTTP transport
History

Tue, 25 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 25 Aug 2026 18:15:00 +0000

Type Values Removed Values Added
Description genieacs-mcp is an MCP server for GenieACS written in Go. Prior to 0.3.2, the Streamable HTTP transport in cmd/server/main.go creates an unauthenticated /mcp listener on the default MCP_LISTEN_ADDR value 127.0.0.1:8080 when MCP_AUTH_TOKEN is unset and the httpSrv.Start(addr) branch does not validate the Host or Origin headers. A malicious website can use DNS rebinding to send browser requests with attacker-controlled Host and Origin values to the loopback listener, initialize an MCP session, list tools, and invoke operations against the GenieACS NBI configured by ACS_URL. Successful exploitation can expose or modify CPE management state, including device reboots, firmware tasks, TR-069 parameter changes, presets, provisions, tags, connection requests, and task operations. The npm wrapper is not affected because it forces TRANSPORT=stdio and does not expose an HTTP listener. This issue is fixed in version 0.3.2.
Title genieacs-mcp: DNS rebinding reaches local GenieACS MCP Streamable HTTP transport
Weaknesses CWE-346
References
Metrics cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T18:24:42.746Z

Reserved: 2026-06-16T23:52:12.057Z

Link: CVE-2026-55637

cve-icon Vulnrichment

Updated: 2026-08-25T18:24:20.639Z

cve-icon NVD

Status : Received

Published: 2026-08-25T18:17:56.157

Modified: 2026-08-25T19:16:50.917

Link: CVE-2026-55637

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-25T20:45:04Z

Weaknesses