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·6 visits

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

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read