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-48814

CVE-2026-48814: Missing Authentication for Critical Orchestration Tools in Network-AI McpSseServer

Alon Barad
Alon Barad
Software Engineer

Jun 19, 2026·7 min read·2 visits

Executive Summary (TL;DR)

The Network-AI library (versions <= 5.7.1) features an insecure default configuration in its MCP Server-Sent Events server component. If initialized without a secret, it permits unauthenticated remote callers to invoke any of its 22 critical orchestration tools, potentially leading to unauthorized data exposure, state mutation, and arbitrary agent spawning.

CVE-2026-48814 is a critical vulnerability classified as Missing Authentication for Critical Function (CWE-306) in Network-AI, a TypeScript/Node.js multi-agent orchestrator. In versions 5.7.1 and earlier, the Model Context Protocol (MCP) Server-Sent Events (SSE) server allows unauthenticated, cross-origin invocation of sensitive orchestration tools. This vulnerability stems from an incomplete fix for CVE-2026-46701, where library-level server class initializations still default to an insecure empty-secret configuration, allowing remote attackers or Server-Side Request Forgery (SSRF) agents to execute administrative tools.

Vulnerability Overview

The vulnerability identified as CVE-2026-48814 is a critical security flaw classified as Missing Authentication for Critical Function (CWE-306) within the Network-AI multi-agent orchestrator framework. This library, built for Node.js using TypeScript, implements a Model Context Protocol (MCP) Server-Sent Events (SSE) server (McpSseServer) to facilitate communication between AI agents, external tools, and orchestration logic. The vulnerability specifically exists in the transport layers of the framework where administrative and operational tools are registered and executed.

An unauthenticated remote attacker can exploit this flaw to execute critical orchestration capabilities without providing credentials. The underlying flaw represents an incomplete fix for a prior vulnerability, CVE-2026-46701, which only addressed browser-based attacks via Cross-Origin Resource Sharing (CORS) configurations. In Network-AI versions 5.7.1 and earlier, the library-level McpSseServer class still defaults to an empty authorization secret, allowing direct backend-to-backend socket connections to bypass any logical access control.

The impact of this vulnerability is severe, as the orchestrator provides administrative access to 22 separate MCP tools. These tools manage core systems, manipulate variables on the shared state blackboard, modify configurations, and spawn new orchestrator agents. This exposure permits unauthorized reading of system state, configuration manipulation, and complete compromise of the underlying multi-agent environment when the server is bound to a non-loopback network interface.

Technical Root Cause Analysis

The technical root cause of CVE-2026-48814 resides in the fallback logic of the _isAuthorized method inside lib/mcp-transport-sse.ts. When an integrator instantiates the McpSseServer class without passing an explicit secret token, the internal configuration option this._opts.secret is evaluated as an empty string, undefined, or null. Under these conditions, the server defaults to an insecure open-access state where the authorization check immediately returns true rather than rejecting the unauthenticated connection.

The vulnerability is compounded by the behavior of the server binding process. When the application starts, the listen method detects if the server is binding to a non-loopback IP address, such as 0.0.0.0, while lacking an authentication secret. Instead of aborting execution or throwing an error, the library only emits a warning message to standard error (stderr) and continues to listen on the specified port. This design choice implements a fail-open architecture that compromises security in favor of development convenience.

The incomplete remediation of CVE-2026-46701 left the library transport layers vulnerable. While the CLI executable component (bin/mcp-server.ts) was hardened to require a secret from the environment, the underlying class in lib/mcp-transport-sse.ts remained unchanged. Consequently, any developer importing the library class directly to build custom orchestrator servers created an application that lacked default authentication controls, exposing critical tool execution interfaces to local or external network routes.

Code-Level Patch Comparison

To understand the exact code-level flaw, we must analyze the private _isAuthorized method and the listen method inside lib/mcp-transport-sse.ts before the patch. In the vulnerable version (v5.7.1), the authorization check allowed immediate access if no secret was defined in the server options. This allowed requests lacking an HTTP authorization header to pass through undetected.

// Vulnerable implementation in v5.7.1
private _isAuthorized(req: http.IncomingMessage): boolean {
  if (!this._opts.secret) return true; // Fail-open: returns true if secret is missing or empty
  const authHeader = req.headers['authorization'];
  if (typeof authHeader !== 'string') return false;
  // ... token parsing logic continues
}

The remediation applied in version 5.7.2 implements a strict fail-closed pattern. The modified logic within the _isAuthorized method now explicitly returns false if the secret option is not configured. Furthermore, the updated listen method now throws an exception and rejects the initialization promise if a secret is missing, preventing the service from binding to any interface without an active security control.

// Patched implementation in v5.7.2
private _isAuthorized(req: http.IncomingMessage): boolean {
  if (!this._opts.secret) return false; // Fail-closed: missing secret denies access
  const authHeader = req.headers['authorization'];
  if (typeof authHeader !== 'string') return false;
  const parts = authHeader.split(' ');
  if (parts.length !== 2 || parts[0] !== 'Bearer') return false;
  return parts[1] === this._opts.secret;
}

Additionally, the patch refactors the McpSseTransport client transport class to accept a secret argument. This change guarantees that legitimate client instances automatically transmit the required bearer token via the Authorization: Bearer <secret> header. By modifying both the server's authorization enforcement and the transport client's request-building routines, the library ensures that all tool calls must be authenticated by default.

Exploitation Methodology & Attack Path

Exploitation of CVE-2026-48814 does not require complex state conditions or highly specialized payloads. An attacker needs network access to the port where the McpSseServer is listening, typically port 3001 or 3099. Because the transport layer uses Server-Sent Events (SSE) and HTTP POST requests, standard network utilities such as curl can be used to directly interact with the endpoint and invoke JSON-RPC 2.0 procedures.

The attack sequence begins with an unauthenticated HTTP POST request aimed at the /mcp endpoint to enumerate available tools. If the server is vulnerable, it returns a complete JSON-RPC response listing all 22 registered MCP tools, including their parameter schemas. An attacker can then construct a secondary POST request targeting specific critical tools, such as blackboard_write or config_set, to execute administrative actions within the orchestrator environment.

Because the vulnerability allows manipulation of the state blackboard, an attacker can overwrite execution variables used by running AI agents. This state manipulation can force agents to execute arbitrary shell commands, spawn malicious sub-processes, or exfiltrate sensitive API tokens. This direct access bypasses the agent boundary, transforming a simple missing authentication flaw into a channel for lateral movement and remote code execution.

Impact & Security Assessment

The impact of CVE-2026-48814 is classified as critical, receiving a CVSS v3.1 base score of 9.1. The attack vector is Network, indicating the flaw can be exploited remotely across external boundaries or within a local network segment. Because the attack complexity is low and requires no prior privileges or user interaction, any exposed instance can be compromised immediately by an automated scanner or a local malicious agent.

The compromise of confidentiality and integrity is rated as high. Attackers can read sensitive system configurations, inspect running agent memory states, and view secrets on the blackboard. Furthermore, the integrity of the entire orchestrator is lost, as the attacker can write to the blackboard, modify security configurations, or call the agent_spawn tool to insert unauthorized agents into the active workflow.

Although the direct availability impact is rated as none, the logical disruption of the orchestrator can cause operational failures. An attacker who writes corrupt data to the shared blackboard can disrupt agent execution flows, leading to application hangs or denial-of-service conditions at the business-logic layer. In enterprise deployments where Network-AI agents manage infrastructure or integrate with cloud databases, this vulnerability provides a gateway to broader cloud environments.

Remediation & Hardening Guidance

The primary and most effective remediation path is to upgrade the network-ai dependency to version 5.7.2 or later. This release eliminates the fail-open fallback logic, enforces mandatory secret verification, and modifies the McpSseServer class to prevent initialization if an authentication token is not supplied. This change ensures that any custom server implementations inherit the secure-by-default behavior of the patched library.

In environments where immediate upgrading is not possible, developers must apply manual configuration hardening. The McpSseServer must be instantiated with a robust, cryptographically secure secret passed via the options object, and the server must be bound exclusively to loopback interfaces such as 127.0.0.1. This minimizes exposure to external network interfaces and prevents unauthorized cross-network access.

// Secure manual instantiation pattern
const server = new McpSseServer(combinedTools, {
  port: 3001,
  host: '127.0.0.1', // Restrict binding to loopback
  secret: process.env.NETWORK_AI_MCP_SECRET // Ensure secure secret is enforced
});

Additionally, security teams should configure network security groups and local firewalls to block external ingress traffic targeting ports associated with the MCP SSE transport (e.g., ports 3001 and 3099). If local transport is sufficient for agent communication, developers should transition from using McpSseServer to the standard input/output transport channel (McpStdioTransport), which eliminates the network listening port entirely and avoids the SSE attack surface.

Official Patches

JovancodingFormal advisory mapping missing authentication on critical tool invocation
JovancodingNetwork-AI version 5.7.2 Release Notes

Fix Analysis (1)

Technical Appendix

CVSS Score
9.1/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Probability
0.30%
Top 79% most exploited

Affected Systems

Network-AI library environments implementing custom McpSseServer integrationsNode.js multi-agent orchestration backends running network-ai versions <= 5.7.1

Affected Versions Detail

Product
Affected Versions
Fixed Version
network-ai
Jovancoding
<= 5.7.15.7.2
AttributeDetail
CWE IDCWE-306 (Missing Authentication for Critical Function)
Attack VectorNetwork
CVSS v3.1 Score9.1 (Critical)
EPSS Score0.00297 (~0.30% probability)
ImpactHigh Confidentiality, High Integrity, No Availability
Exploit StatusNone (No public weaponized exploit available)
KEV StatusNot listed in CISA KEV Catalog

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-306
Missing Authentication for Critical Function

The application fails to perform an authentication check before allowing access to a critical capability.

Vulnerability Timeline

Incomplete fix identified in Network-AI <= 5.7.1
2026-05-19
Official security patch developed and released in version 5.7.2
2026-05-23
Advisory GHSA-r78r-rwrf-rjwp published with CVE-2026-48814 identifier
2026-06-17

References & Sources

  • [1]GitHub Security Advisory Record
  • [2]GitHub Release Log v5.7.2
  • [3]GitHub Advisory Database Mapping

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

•30 minutes ago•GHSA-WFPW-MMFH-QQ69
4.8

GHSA-WFPW-MMFH-QQ69: Use-After-Free Vulnerability in Nokogiri XML Node-Level XInclude Processing

Nokogiri is a popular Ruby gem used for parsing XML and HTML documents. A Use-After-Free (UAF) vulnerability exists in its CRuby implementation during XInclude processing. When an application traverses an XML document and exposes nodes to Ruby before calling `do_xinclude`, the underlying C library `libxml2` can free these structures in-place. This leaves active Ruby objects holding pointers to freed memory, leading to potential segmentation faults, memory corruption, or information disclosure.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 1 hour ago•GHSA-PHWJ-RPRQ-35PP
2.3

GHSA-PHWJ-RPRQ-35PP: Use-After-Free Vulnerability in Nokogiri XML Attribute Value Modification

A use-after-free (UAF) vulnerability exists in the CRuby native extension of the Nokogiri gem when updating XML attribute values. If child nodes of an XML attribute are wrapped by Ruby objects prior to setting the attribute's value, the underlying C memory structures are freed while the Ruby wrapper retains a dangling pointer. This results in memory corruption, invalid pointer dereferences, and application crashes during execution or garbage collection.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 1 hour ago•GHSA-VMHF-C436-HXJ4
5.1

GHSA-VMHF-C436-HXJ4: Client-side Stored Cross-Site Scripting (XSS) in JupyterLab Extension Manager

A client-side Stored Cross-Site Scripting (XSS) vulnerability exists in the JupyterLab Extension Manager. This vulnerability allows an attacker to register a malicious package on the Python Package Index (PyPI) with a crafted metadata homepage URL using the 'javascript:' pseudo-protocol. When a JupyterLab user opens the Extension Manager and clicks the extension name, the browser executes arbitrary JavaScript code within the context of the JupyterLab origin. This can lead to the theft of active workspace documents, credentials, and API tokens. The issue affects all versions of JupyterLab prior to version 4.5.9.

Amit Schendel
Amit Schendel
2 views•5 min read
•about 2 hours ago•GHSA-JV2H-4P9V-WF5W
8.8

GHSA-JV2H-4P9V-WF5W: Arbitrary Remote Code Execution via Incomplete Environment Denylist in Ouroboros AI

An arbitrary Remote Code Execution (RCE) vulnerability exists in ouroboros-ai due to an incomplete fix for CVE-2026-47211. Ouroboros automatically loads environment configurations from local .env files located in the current working directory (CWD) of cloned repositories. Although a denylist (_UNTRUSTED_ENV_DENYLIST) was introduced in version 0.39.0 to filter out execution-routing environment variables, multiple critical configuration variables were omitted, enabling complete sandbox bypass and arbitrary system command execution.

Alon Barad
Alon Barad
4 views•6 min read
•about 3 hours ago•GHSA-VCV2-R9JH-99M5
8.8

GHSA-VCV2-R9JH-99M5: OS Command Injection in agentic-flow MCP Server Tools

An OS command injection vulnerability (CWE-78) exists in agentic-flow versions 2.0.13 and prior. The package's Model Context Protocol (MCP) server tools directly interpolate user-controlled parameters into shell command strings executed via child_process.execSync without validation. If an AI agent processes untrusted external input and forwards it as parameters to any affected tool, an attacker can break out of the shell argument quotes and execute arbitrary OS commands on the host machine.

Alon Barad
Alon Barad
4 views•5 min read
•about 4 hours ago•CVE-2026-12151
7.5

CVE-2026-12151: Denial of Service via Uncontrolled Fragment Buffering in Undici WebSocket Client

A high-severity denial of service vulnerability in the undici WebSocket client (CVE-2026-12151) arises from uncontrolled memory consumption. Although undici validates individual fragment sizes against a cumulative payload limit, it fails to cap the total number of frames in a single message stream. This allows a rogue or compromised WebSocket server to send an infinite sequence of small or empty continuation frames, causing unbounded memory allocation and eventual heap exhaustion on the client process.

Amit Schendel
Amit Schendel
5 views•7 min read