<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 01 Oct 2026 04:16:14 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-55637</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-55637</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-55637</guid>
    </item>
    <item>
      <title>GHSA-cmwv-wf9p-p8wx — genieacs-mcp: DNS rebinding reaches local GenieACS MCP Streamable HTTP transport</title>
      <link>https://db.gcve.eu/vuln/ghsa-cmwv-wf9p-p8wx</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/geiserx/genieacs-mcp&lt;/p&gt;
&lt;p&gt;`genieacs-mcp` exposes a local Streamable HTTP MCP endpoint that accepts attacker-controlled `Host` and `Origin` headers. A malicious web page can use DNS rebinding to route browser requests to a victim&amp;#39;s loopback MCP listener while preserving the attacker origin. The server accepts the request, initializes an MCP session, lists GenieACS tools, and can invoke tools against the configured GenieACS NBI without a browser-supplied secret.&lt;/p&gt;
&lt;p&gt;The affected package is `genieacs-mcp` version `0.3.1` at commit `4d7d3c74740efb7f3833aadc8a8e9177650eb462`.&lt;/p&gt;
&lt;p&gt;The vulnerable transport setup is in `cmd/server/main.go`. When `TRANSPORT` is not `stdio`, the server creates a Streamable HTTP MCP handler:&lt;/p&gt;
&lt;p&gt;```go
// cmd/server/main.go:92
httpSrv := server.NewStreamableHTTPServer(s)
addr := os.Getenv(&amp;#34;MCP_LISTEN_ADDR&amp;#34;)
if addr == &amp;#34;&amp;#34; {
    addr = &amp;#34;127.0.0.1:8080&amp;#34;
}
authToken := os.Getenv(&amp;#34;MCP_AUTH_TOKEN&amp;#34;)
if authToken == &amp;#34;&amp;#34; &amp;amp;&amp;amp; !isLoopbackAddr(addr) {
    log.Fatal(&amp;#34;MCP_AUTH_TOKEN is required when MCP_LISTEN_ADDR is not loopback&amp;#34;)
}
if authToken != &amp;#34;&amp;#34; {
    mux := http.NewServeMux()
    mux.Handle(&amp;#34;/mcp&amp;#34;, bearerAuth(httpSrv, authToken))
    log.Printf(&amp;#34;GenieACS MCP bridge listening on %s (auth enabled)&amp;#34;, addr)
    if err := http.ListenAndServe(addr, mux); err != nil {
        log.Fatalf(&amp;#34;server error: %v&amp;#34;, err)
    }
} else {
    log.Printf(&amp;#34;GenieACS MCP bridge listening on %s&amp;#34;, addr)
    if err := httpSrv.Start(addr); err != nil {
        log.Fatalf(&amp;#34;server error: %v&amp;#34;, err)
    }
}
```&lt;/p&gt;
&lt;p&gt;For the defau…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/geiserx/genieacs-mcp&lt;/p&gt;
&lt;p&gt;`genieacs-mcp` exposes a local Streamable HTTP MCP endpoint that accepts attacker-controlled `Host` and `Origin` headers. A malicious web page can use DNS rebinding to route browser requests to a victim&amp;#39;s loopback MCP listener while preserving the attacker origin. The server accepts the request, initializes an MCP session, lists GenieACS tools, and can invoke tools against the configured GenieACS NBI without a browser-supplied secret.&lt;/p&gt;
&lt;p&gt;The affected package is `genieacs-mcp` version `0.3.1` at commit `4d7d3c74740efb7f3833aadc8a8e9177650eb462`.&lt;/p&gt;
&lt;p&gt;The vulnerable transport setup is in `cmd/server/main.go`. When `TRANSPORT` is not `stdio`, the server creates a Streamable HTTP MCP handler:&lt;/p&gt;
&lt;p&gt;```go
// cmd/server/main.go:92
httpSrv := server.NewStreamableHTTPServer(s)
addr := os.Getenv(&amp;#34;MCP_LISTEN_ADDR&amp;#34;)
if addr == &amp;#34;&amp;#34; {
    addr = &amp;#34;127.0.0.1:8080&amp;#34;
}
authToken := os.Getenv(&amp;#34;MCP_AUTH_TOKEN&amp;#34;)
if authToken == &amp;#34;&amp;#34; &amp;amp;&amp;amp; !isLoopbackAddr(addr) {
    log.Fatal(&amp;#34;MCP_AUTH_TOKEN is required when MCP_LISTEN_ADDR is not loopback&amp;#34;)
}
if authToken != &amp;#34;&amp;#34; {
    mux := http.NewServeMux()
    mux.Handle(&amp;#34;/mcp&amp;#34;, bearerAuth(httpSrv, authToken))
    log.Printf(&amp;#34;GenieACS MCP bridge listening on %s (auth enabled)&amp;#34;, addr)
    if err := http.ListenAndServe(addr, mux); err != nil {
        log.Fatalf(&amp;#34;server error: %v&amp;#34;, err)
    }
} else {
    log.Printf(&amp;#34;GenieACS MCP bridge listening on %s&amp;#34;, addr)
    if err := httpSrv.Start(addr); err != nil {
        log.Fatalf(&amp;#34;server error: %v&amp;#34;, err)
    }
}
```&lt;/p&gt;
&lt;p&gt;For the defau…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-cmwv-wf9p-p8wx</guid>
    </item>
  </channel>
</rss>
