<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>GeiserX - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/geiserx/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 25 Aug 2026 18:49:34 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/geiserx/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>DNS Rebinding Vulnerability in GenieACS MCP Streamable HTTP Transport</title><link>https://feed.craftedsignal.io/briefs/2026-08-genieacs-mcp-dns-rebinding/</link><pubDate>Tue, 25 Aug 2026 18:49:34 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-genieacs-mcp-dns-rebinding/</guid><description>The genieacs-mcp package fails to validate Host and Origin headers on loopback listeners, allowing unauthorized web pages to perform DNS rebinding and invoke administrative GenieACS tools via an unauthenticated MCP interface.</description><content:encoded><![CDATA[<p>The <code>genieacs-mcp</code> package (versions &lt;= 0.3.1) is vulnerable to a DNS rebinding attack that exploits an unauthenticated Streamable HTTP MCP endpoint. By default, the package binds to <code>127.0.0.1:8080</code> and does not enforce authentication, relying on the loopback address as a security boundary. However, browsers can be coerced into sending requests to this loopback address via DNS rebinding from a malicious web page. Because the MCP server fails to validate <code>Host</code> and <code>Origin</code> headers, it accepts these requests, allowing the attacker to initialize an MCP session and execute sensitive device management tools. This vulnerability effectively permits remote control over the underlying GenieACS NBI interface, enabling actions such as device reboots, firmware updates, and modification of TR-069 configuration parameters.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The victim visits an attacker-controlled website which initiates a DNS rebinding sequence against an internal or localhost domain.</li>
<li>The browser is directed to resolve a malicious domain to <code>127.0.0.1</code>, bypassing the Same-Origin Policy.</li>
<li>The malicious website sends a crafted HTTP POST request to the local <code>genieacs-mcp</code> listener at <code>127.0.0.1:8080/mcp</code>.</li>
<li>The <code>genieacs-mcp</code> server processes the request without verifying the <code>Host</code> or <code>Origin</code> headers, assuming the loopback traffic is benign.</li>
<li>The attacker initializes an MCP session by sending a JSON-RPC <code>initialize</code> request, receiving a session ID.</li>
<li>The attacker invokes administrative tools such as <code>get_parameter</code> or <code>reboot_device</code> via <code>tools/call</code>.</li>
<li>The <code>genieacs-mcp</code> backend relays these authenticated tool calls to the target GenieACS NBI, leading to unauthorized device management actions.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows a remote attacker to act as an authenticated user of the GenieACS MCP interface. This results in unauthorized control over device fleets, including the ability to reboot CPE devices, initiate firmware downloads, and modify TR-069 device parameters. Exposure of these management interfaces presents a significant risk to the integrity and availability of the managed network devices.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade <code>genieacs-mcp</code> to a version that enforces strict <code>Host</code> and <code>Origin</code> header validation for all HTTP transport requests, including loopback.</li>
<li>For current deployments, implement a reverse proxy or WAF layer that rejects requests to the MCP endpoint if the <code>Host</code> and <code>Origin</code> headers do not match expected local values (e.g., <code>127.0.0.1:8080</code> or <code>localhost:8080</code>).</li>
<li>Require a bearer token for all HTTP transport configurations, even for local loopback interfaces, to mitigate the risk of unauthenticated requests.</li>
<li>Consider migrating to the <code>stdio</code> transport mode if HTTP-based MCP bridging is not strictly required for the specific integration.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>dns-rebinding</category><category>mcp</category><category>genieacs</category><category>remote-code-execution</category></item></channel></rss>