CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55637

CVE-2026-55637: Remote Administrative Command Execution in genieacs-mcp via DNS Rebinding

Alon Barad
Alon Barad
Software Engineer

Aug 26, 2026·5 min read·1 visit

Executive Summary (TL;DR)

Unauthenticated loopback HTTP transport in genieacs-mcp prior to 0.3.2 fails to validate Host and Origin headers, enabling remote attackers to bypass the Same-Origin Policy via DNS rebinding and compromise GenieACS administration.

CVE-2026-55637 is a high-severity DNS rebinding vulnerability affecting the genieacs-mcp Model Context Protocol server. Prior to version 0.3.2, the application's Streamable HTTP transport lacks adequate Host and Origin header validation. This omission allows external attackers to bypass the Same-Origin Policy through a victim's browser and issue unauthenticated commands to loopback listeners.

Vulnerability Overview

The Model Context Protocol (MCP) server genieacs-mcp serves as an administrative bridge, enabling Large Language Model (LLM) agents to interact with GenieACS TR-069 Auto-Configuration Server (ACS) instances.\n\nBy interfacing directly with the GenieACS Northbound Interface (NBI), this tool exposes administrative functions to control Customer Premises Equipment (CPE) such as home routers, ONTs, and gateways.\n\nIn versions prior to 0.3.2, the application features an unauthenticated streamable HTTP server configured by default to listen on the loopback interface (127.0.0.1:8080). This architectural design assumes that loopback binding provides isolated protection against external threats.\n\nThis trust model is bypassed when an administrative user visits an attacker-controlled website. The external site can perform a DNS rebinding attack, routing cross-origin browser payloads to the local bridge.

Root Cause Analysis

The underlying vulnerability originates in the HTTP transport layer handler found within cmd/server/main.go.\n\nBy default, the application runs without requiring an authorization token (MCP_AUTH_TOKEN) if the server binds to loopback, operating on the premise that local sockets are unreachable from external domains.\n\nThe unpatched HTTP transport processes incoming Server-Sent Events (SSE) and JSON-RPC over HTTP requests without verifying the Host or Origin headers.\n\nThis configuration is susceptible to a classic DNS rebinding sequence. An attacker registers a domain name with a low Time-To-Live (TTL) value and configures their DNS server to respond first with a public IP hosting exploit scripts, and subsequently with the loopback IP (127.0.0.1).\n\nBecause the browser associates the active session with the original domain, it maintains the Same-Origin Policy (SOP) context. The browser continues sending requests, which are now routed directly to the unauthenticated loopback interface of the local MCP bridge.

Code Analysis & Fix Progression

The development history of the project shows an iterative hardening process before the final remediation of the DNS rebinding path.\n\nInitially, commit 8d7d343b905827d9cfa2e099dc9967471866f565 attempted to secure the interface by default-binding to 127.0.0.1. A subsequent commit, bcb91f12cbf61afafcd5b85d1c39147d0c6cca71, mandated authorization tokens only for non-loopback bindings, still leaving localhost sockets exposed.\n\nThe vulnerability was resolved in version 0.3.2 via commit 577306d78190622eee97e362b042a69499ef373f with the implementation of a middleware named dnsRebindGuard. This module explicitly evaluates the HTTP metadata of incoming payloads:\n\ngo\n// dnsRebindGuard rejects requests whose Host header is not in the allowed set,\n// and requests carrying an Origin that is not allowed. This blocks DNS\n// rebinding.\nfunc dnsRebindGuard(next http.Handler, hosts, origins map[string]bool) http.Handler {\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tif !hosts[r.Host] {\n\t\t\thttp.Error(w, "forbidden: untrusted Host header", http.StatusForbidden)\n\t\t\treturn\n\t\t}\n\t\tif origin := r.Header.Get("Origin"); origin != "" && !origins[strings.TrimRight(origin, "/")] {\n\t\t\thttp.Error(w, "forbidden: untrusted Origin header", http.StatusForbidden)\n\t\t\treturn\n\t\t}\n\t\tnext.ServeHTTP(w, r)\n\t})\n}\n\n\nThe helper functions utilize standard library packages like net.SplitHostPort and net.JoinHostPort to normalize incoming requests, blocking variations such as subdomain injection while permitting safe, local command-line tool integrations.

Exploitation Methodology

To execute the attack, a threat actor must induce a local operator running genieacs-mcp to load a malicious web resource.\n\nmermaid\ngraph LR\n Victim["Victim Browser"] -->|"1. Visits site"| Attacker["Attacker Web Server (Public IP)"]\n Attacker -->|"2. Delivers Exploit JS"| Victim\n Victim -->|"3. Query DNS (TTL=1s)"| DNS["Malicious DNS Server"]\n DNS -->|"4. Rebinds domain to 127.0.0.1"| Victim\n Victim -->|"5. Issues JSON-RPC HTTP requests"| LocalMCP["local genieacs-mcp (127.0.0.1:8080)"]\n LocalMCP -->|"6. Executes commands on ACS NBI"| GenieACS["GenieACS Instance"]\n\n\nUpon accessing the landing page, the malicious JavaScript sends an asynchronous request to an attacker-controlled subdomain. The custom DNS server answers with a TTL of 1 second.\n\nWhen the TTL expires, the script triggers another request to the same domain name. The DNS server answers this resolution query with 127.0.0.1. The browser routes the network packet to localhost on port 8080.\n\nBecause the port, protocol, and host domain matches the initial configuration from the browser's perspective, the script successfully bypasses SOP restrictions, invoking administrative tools such as reboot_device or download_firmware.

Impact Assessment

An exploitation sequence targeting a genieacs-mcp setup can result in a significant compromise of downstream network assets.\n\nBy exploiting the local MCP server, an external attacker gains the ability to leverage all privileges assigned to the bridge's API key within the GenieACS environment.\n\nThis vector allows attackers to view sensitive configurations, push modified firmware images to managed CPE devices, or execute localized service disruptions by triggering device reboots.\n\nConsequently, the blast radius of this client-side vulnerability extends far beyond the user's workstation, posing a severe risk to carrier-grade network gateways and customer deployments.

Remediation & Mitigation Guidelines

Operators must prioritize upgrading their deployments of genieacs-mcp to version 0.3.2 or above.\n\nIf upgrading is not immediately possible, you can mitigate the vulnerability by forcing Stdio mode. Configure the environment variable:\n\nTRANSPORT=stdio\n\nThis setting disables the HTTP socket transport layer completely, eliminating the network attack surface.\n\nIf you require the HTTP transport layer, you must define MCP_AUTH_TOKEN in your environment configuration to enforce bearer token verification, and configure MCP_ALLOWED_HOSTS to define the strict domains authorized to reach the endpoint.

Official Patches

GeiserXVulnerability Remediation Commit

Fix Analysis (3)

Technical Appendix

CVSS Score
8.8/ 10
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

Affected Systems

genieacs-mcp

Affected Versions Detail

Product
Affected Versions
Fixed Version
genieacs-mcp
GeiserX
< 0.3.20.3.2
AttributeDetail
CWE IDCWE-346 (Origin Validation Error)
Attack VectorNetwork / Browser-Driven DNS Rebinding
CVSS v4.0 Score8.8 (High)
Exploit StatusProof of Concept
CISA KEV StatusNot Listed
Remediation StatusPatched in v0.3.2

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1071.001Application Layer Protocol: Web Protocols
Command and Control
T1563Remote Service Session Hijacking
Lateral Movement
CWE-346
Origin Validation Error

The software does not validate or incorrectly validates the origin of a request, allowing attackers to perform operations under the guise of a trusted client.

References & Sources

  • [1]CVE-2026-55637 Record
  • [2]Official Security Advisory GHSA-cmwv-wf9p-p8wx
  • [3]Pull Request Addressing DNS Rebinding
  • [4]v0.3.2 Release Tag

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 2 hours ago•CVE-2026-48853
9.2

CVE-2026-48853: Remote Code Execution and Denial of Service in elixir-grpc via Erlpack Deserialization

A critical vulnerability exists in the elixir-grpc library's Erlpack codec, where the unsafe deserialization of Erlang External Term Format (ETF) payloads allows unauthenticated remote attackers to cause a Denial of Service through atom table exhaustion or execute arbitrary code on the host server.

Amit Schendel
Amit Schendel
1 views•8 min read
•about 3 hours ago•CVE-2026-48599
7.6

CVE-2026-48599: Authorization Bypass in elixir-grpc/grpc Transcoding Layer

An authorization bypass vulnerability exists in the elixir-grpc/grpc library version 0.8.0 up to 1.0.0. Due to insecure map merging precedence inside the HTTP-to-gRPC transcoding engine, query-string parameters and request bodies can override routing path variables, allowing attackers to execute unauthorized actions on other accounts.

Alon Barad
Alon Barad
4 views•6 min read
•about 4 hours ago•CVE-2026-48854
8.7

CVE-2026-48854: Unauthenticated Denial of Service via Resource Exhaustion in elixir-grpc Server

An allocation of resources without limits or throttling vulnerability exists in the Elixir grpc server component when processing unary requests. Unauthenticated remote attackers can stream unbounded data payloads, bypassing standard timeout mechanisms and exhausting host BEAM VM memory, resulting in an immediate crash of the server node.

Alon Barad
Alon Barad
3 views•7 min read
•about 5 hours ago•CVE-2026-53430
8.7

CVE-2026-53430: Unauthenticated Remote Denial of Service via Gzip Decompression Bomb in elixir-grpc/grpc

CVE-2026-53430 is a critical uncontrolled resource consumption vulnerability in the elixir-grpc/grpc library. An unauthenticated remote attacker can cause immediate memory exhaustion and system crashes by sending crafted gRPC frames compressed with Gzip, leading to a complete Denial of Service.

Alon Barad
Alon Barad
5 views•7 min read
•about 6 hours ago•CVE-2026-55663
5.6

CVE-2026-55663: unauthenticated state cookie forgery in mediasoup SCTP stack

A cryptographic validation flaw (CWE-345) exists in the built-in SCTP implementation of mediasoup (NPM package < 3.20.6, Rust crate < 0.22.5). Due to missing cryptographic signature verification of State Cookies, an on-path attacker targeting PlainTransport or PipeTransport without DTLS can forge state cookies containing static magic bytes. This allows the attacker to establish arbitrary SCTP associations and inject malicious DataChannel messages.

Amit Schendel
Amit Schendel
4 views•8 min read
•about 7 hours ago•CVE-2026-49757
9.2

CVE-2026-49757: Authentication Bypass and Account Takeover in ash_authentication OAuth2/OIDC

An authentication bypass and account takeover vulnerability in the AshAuthentication Elixir library (developed by team-alembic) allows unauthenticated remote attackers to compromise local accounts. By relying on mutable and unverified email claims instead of stable cryptographic issuer and subject pairings during OAuth2 and OIDC federated login flows, the application fails to validate the trust boundary of the incoming session.

Alon Barad
Alon Barad
3 views•6 min read