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



GHSA-XHCR-CQFR-M3HV

GHSA-XHCR-CQFR-M3HV: Remote Code Execution via Insecure HTTP MCP Server Registry in atomic-agents-stack

Alon Barad
Alon Barad
Software Engineer

Aug 18, 2026·6 min read·1 visit

Executive Summary (TL;DR)

Unencrypted HTTP retrieval of Model Context Protocol catalogs allows Man-in-the-Middle attackers to hijack command execution payloads, resulting in arbitrary code execution on the host system.

A critical vulnerability exists in the atomic-agents-stack package up to version 1.0.0. The HTTP Model Context Protocol (MCP) server-registry backend factory retrieves catalog metadata over cleartext HTTP by default. Because these catalogs define execution parameters ('command' and 'args') for local stdio subprocesses, a network-positioned attacker can intercept the cleartext traffic and inject arbitrary commands. This results in arbitrary remote code execution on the agent host system without requiring user interaction.

Vulnerability Overview

The Model Context Protocol (MCP) is designed to allow Large Language Models (LLMs) and agentic applications to interface securely with external data sources and execution environments. To facilitate server discovery, applications often implement a catalog or registry system that specifies how to locate and configure external MCP servers. The package atomic-agents-stack implements this capability via the atomic_agents/mcp_registry/http.py module, which resolves remote server configurations dynamically.

The vulnerability resides in the HTTP MCP registry backend factory, which retrieves the server configurations from remote JSON endpoints. By design, these server configurations contain execution metadata, including the command and command-line arguments needed to spawn local stdio subprocesses. Because the registry factory lacks protocol restriction, it permits the retrieval of these configurations over cleartext HTTP.

This configuration model presents an unauthenticated network attack surface. Any network actor positioned to perform a Man-in-the-Middle (MITM) attack can manipulate the remote HTTP responses. Since the client implicitly trusts the returned commands, this allows a remote attacker to gain local command execution on the client host.

Root Cause Analysis

The root cause of GHSA-XHCR-CQFR-M3HV lies in a dual failure of communication security and payload validation. Specifically, the function make_http_mcp_server_registry_backend_from_url accepts HTTP registry URLs without enforcing transport-layer encryption. This cleartext fallback exposes the connection to modification by third parties on the network path, violating basic principles of secure data transmission (CWE-319).

Furthermore, the registry payload processing logic relies on implicit trust in the remote catalog content (CWE-494). While the system parses the JSON data and verifies structure (confirming that commands are strings and arguments are arrays), it fails to inspect the content of the commands. There is no mechanism to limit commands to a predefined allowlist of executable binaries, nor is there user verification prior to execution.

Finally, the execution layer inside MCPClientPool spawns subprocesses directly using these untrusted inputs. Because the default configuration lacks a policy-based validation callback (mcp_allow_fn defaults to None), all parsed configurations are executed automatically. This execution model guarantees that any modification to the returned JSON translates directly to local system execution.

Code Analysis

A review of the vulnerable module atomic_agents/mcp_registry/http.py shows that the registry lookup accepts any valid URL scheme starting with http or https. When a cleartext connection is established, the HTTP client fetches the JSON payload without any integrity or authenticity verification.

The following code illustrates the vulnerable implementation pattern:

# Vulnerable: atomic_agents/mcp_registry/http.py
 
def make_http_mcp_server_registry_backend_from_url(url: str):
    # Vulnerability: Accepts insecure http:// scheme without validation
    if not (url.startswith("http://") or url.startswith("https://")):
        raise ValueError("Invalid registry URL")
    
    import httpx
    # Fetching catalog over unencrypted channel
    response = httpx.get(url, verify=True)
    return response.json()

In the patched version (1.1.0), the package restricts unencrypted HTTP URLs by default. If a developer attempts to resolve an unencrypted HTTP registry, the factory throws an exception unless an explicit override flag is supplied.

The updated, secure configuration pattern is structured as follows:

# Patched: atomic_agents/mcp_registry/http.py
 
def make_http_mcp_server_registry_backend_from_url(url: str, allow_insecure_http: bool = False):
    # Remediation: Enforce HTTPS protocol
    if url.startswith("http://") and not allow_insecure_http:
        raise ValueError(
            "Security restriction: Insecure HTTP is disallowed by default. "
            "Configure an HTTPS registry URL or explicitly set allow_insecure_http=True "
            "only in local sandbox environments."
        )
    
    if not (url.startswith("http://") or url.startswith("https://")):
        raise ValueError("Invalid registry URL")
        
    import httpx
    # Retrieve catalog safely with redirects disabled to block SSRF vectors
    response = httpx.get(url, verify=True, follow_redirects=False)
    return response.json()

Exploitation Methodology

Exploitation of this vulnerability requires a network-positioned attacker who can intercept transit traffic between the agent host and the HTTP registry server. This is typical in shared network environments, public Wi-Fi networks, or environments with compromised local routing infrastructure.

The attack sequence begins when the agent application requests a registry update over an insecure channel. The attacker intercepts the request and allows it to proceed to the registry, or immediately responds with a crafted JSON document. The injected JSON modifies the command and args parameters of an existing tool configuration.

Once the host application receives the response, it validates the schema and passes the parameters to the execution engine. Because there is no check on the absolute path or binary name of the command, the host spawns the attacker-specified subprocess. This executes arbitrary commands under the security context of the parent application process.

Impact Assessment

The security impact of GHSA-XHCR-CQFR-M3HV is rated High, with a CVSS v4.0 score of 8.7. The primary impact is unauthenticated remote code execution on the agent host. Because the execution is triggered during catalog resolution, no user interaction with an LLM or chat interface is required to initiate the compromise.

The injected commands execute with the same operating system permissions as the host process running atomic-agents-stack. In containerized or server environments, this can lead to container escape, access to sensitive local environment variables, or total compromise of the hosting node.

Additionally, because the vulnerability allows the attacker to execute outbound connections or pull payloads, it serves as an initial access vector for broader network penetration. Since there is currently no active exploitation recorded, organizations have an opportunity to remediate the vulnerability before threat actors construct automated exploit paths.

Remediation & Mitigation

The definitive remediation for this vulnerability is to upgrade the atomic-agents-stack package to version 1.1.0 or greater. The patched release implements secure defaults by rejecting http:// configurations unless specifically instructed otherwise. Developers should audit dependency manifests to verify that the upgraded package is deployed across all environments.

If upgrading is not immediately possible, organizations must configure a custom policy-based verification callback (mcp_allow_fn). This callback must be designed to validate the resolved registry payload prior to execution, rejecting any entry that invokes dangerous binaries or contains unexpected parameters.

Additionally, any deployment utilizing the package must ensure that the registry URLs are strictly configured to use HTTPS. Local sandboxes that require unencrypted HTTP should only be configured with loopback addresses to restrict the attack surface to the local interface.

Technical Appendix

CVSS Score
8.7/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Affected Systems

atomic-agents-stack (pip package)

Affected Versions Detail

Product
Affected Versions
Fixed Version
atomic-agents-stack
dep0we
<= 1.0.01.1.0
AttributeDetail
CWE IDCWE-319, CWE-494
Attack VectorNetwork (MITM)
CVSS v4.08.7
ImpactRemote Code Execution (RCE)
Exploit StatusNone Documented
CWE-319
Cleartext Transmission of Sensitive Information

Vulnerability Timeline

Vulnerability identified and disclosed
2024-11-20
Patch released in version 1.1.0
2024-11-20

References & Sources

  • [1]GitHub Security Advisory
  • [2]Repository Security Advisory
  • [3]Release Notes

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•GHSA-J659-8XH6-5PQ5
8.7

GHSA-J659-8XH6-5PQ5: Financial Guardrail Bypass in atomic-agents-stack via Parallel Execution of Unlisted Models

A high-severity vulnerability in the atomic-agents-stack framework allows complete bypass of cost-cap guardrails during parallel model execution when utilizing unlisted, local, or self-hosted models.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 6 hours ago•GHSA-MPWR-8VM7-H73F
7.4

GHSA-mpwr-8vm7-h73f: Key Space Collapse and Authentication Bypass in go-pkcs12 PBMAC1 Decoding

A security vulnerability in the Go library software.sslmate.com/src/go-pkcs12 allows remote attackers to bypass password-based integrity verification. By crafting a PKCS#12 file with an excessively short KeyLength parameter in the PBMAC1 configuration, the derived MAC key space collapses, allowing an attacker to forge arbitrary certificate structures and private keys that are incorrectly verified as valid.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 10 hours ago•CVE-2026-53766
6.1

CVE-2026-53766: Workspace Boundary Bypass in chrome-devtools-mcp via Symbolic Link Resolution Failure

A workspace boundary bypass vulnerability exists in the Chrome DevTools for Agents (chrome-devtools-mcp) Model Context Protocol (MCP) server from version 0.24.0 up to 1.1.0. The vulnerability allows an agent or malicious workspace containing symbolic links to read or modify arbitrary files outside the configured project workspace root directory. This occurs because the path validation function resolves paths lexically rather than physically.

Alon Barad
Alon Barad
3 views•7 min read
•about 11 hours ago•CVE-2026-56677
8.6

CVE-2026-56677: Unauthenticated Server-Side Request Forgery in 9Router OIDC Test Endpoint

A high-severity security vulnerability exists in 9Router, an AI router and token saver dashboard. When dashboard authentication features are disabled or left in default configurations, the application exposes administrative testing routines directly to the public internet. Unauthenticated network adversaries can exploit the OIDC configuration validation endpoint to initiate arbitrary HTTP requests, routing unauthorized traffic to local loops, adjacent container ports, and cloud resource metadata interfaces.

Amit Schendel
Amit Schendel
3 views•5 min read
•about 12 hours ago•CVE-2026-64849
9.3

CVE-2026-64849: Server-Side Request Forgery (SSRF) in MLflow Webhooks via DNS Rebinding

CVE-2026-64849 is a critical Server-Side Request Forgery (SSRF) vulnerability affecting MLflow tracking servers prior to version 3.15.0. It allows unauthenticated remote attackers to bypass outbound request destination filters using DNS rebinding or HTTP redirects. This exposure risks compromising sensitive cloud infrastructure metadata and internal microservices.

Alon Barad
Alon Barad
5 views•5 min read
•about 13 hours ago•CVE-2026-69146
6.5

CVE-2026-69146: Missing Authorization Bypass in MLflow Basic Authentication Middleware

This technical report details a missing authorization vulnerability (CVE-2026-69146 / GHSA-3p64-6gvh-82v5) affecting the MLflow platform from version 3.13.0 to 3.15.0. When MLflow is configured with the built-in basic-auth plugin, authenticated users can bypass run-level UPDATE authorization checks, enabling unauthorized dataset and model lineage metadata injection.

Alon Barad
Alon Barad
2 views•7 min read