Skip to main content

Network-AI CVE-2026-58482

| EUVDEUVD-2026-46020 MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-07-20 GitHub_M
5.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Operator visits attacker-controlled webpage
  2. Delivery
    Browser auto-sends cross-origin POST to localhost inbox port
  3. Exploit
    routeRequest() processes request with no authentication check
  4. Execution
    Pending agent approval granted without operator consent
  5. Impact
    High-risk agent action (e.g., shell command) executes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The CSRF path (the lower 5.9 CVSS score) requires: (1) the target application uses ApprovalGate/ApprovalInbox - this is not enabled by default in all network-ai deployments, only when operators explicitly configure human-in-the-loop gates; (2) at least one approval is pending in the queue at the time of attack, providing a valid approval ID; (3) the operator visits a malicious webpage while the inbox server is running. The direct network path (8.1 High) instead requires: the operator to have configured startServer() to bind a non-loopback address, or an attacker to have SSRF access from another service on the same host, or co-located process access - none of these are default. In both paths, no authentication whatsoever is required by the server. Exploitation is limited by the requirement that ApprovalInbox be actively deployed and that a pending approval exist; it is not a standing persistent attack surface unless the feature is in continuous use.

Impact

The provided CVSS 3.1 score of 5.9 Medium (AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:N) models the CSRF path against the default 127.0.0.1 binding - the high complexity (AC:H) and required user interaction (UI:R) reflect the social engineering step of luring the operator to a malicious page. However, the GHSA advisory explicitly documents a second, more severe scenario (AV:N/AC:L/PR:N/UI:N = 8.1 High) applicable when the operator binds the inbox to a non-loopback address, or when an attacker has SSRF or co-located process access - in those cases exploitation is direct, unauthenticated, and requires no interaction. The real-world integrity impact is significant beyond what the base score conveys: the compromised control is specifically the last line of defense before an AI agent executes a high-risk action, so successful exploitation results in arbitrary agent-authorized command execution rather than mere data manipulation. No EPSS score was provided in the input data, and no CISA KEV listing exists, meaning exploitation in the wild is neither confirmed nor quantified. The absence of a public POC does not substantially lower risk given the trivial constructability of a CSRF payload.

Exploit ScenarioDerived

An attacker hosts a webpage containing JavaScript that issues a fetch() or XMLHttpRequest POST to http://127.0.0.1:<inbox_port>/approvals/<known-or-guessed-id>/approve; because ApprovalInbox sets Access-Control-Allow-Origin: * with no preflight restriction, the operator's browser sends the request when they visit the page, silently approving a pending shell command or write operation the AI agent had queued for review. No public proof-of-concept code has been identified, but the attack is constructable with fewer than ten lines of standard browser JavaScript given knowledge of the inbox port and any pending approval ID.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 20, 2026

Unauthenticated access to the ApprovalInbox HTTP server in Network-AI 5.0.0-5.12.1 allows any party that can reach the inbox port to enumerate pending agent approvals and approve or deny them without operator consent, completely defeating the human-in-the-loop Approval Gate designed to gate high-risk operations such as shell commands and file writes. Exploitation via CSRF is possible against the default 127.0.0.1 binding because the server unconditionally sets Access-Control-Allow-Origin: * on all routes, including state-changing POST endpoints, enabling any website the operator visits to silently submit approval requests through their browser. No public exploit code or CISA KEV listing has been identified at time of analysis; a vendor-released patch is available as of v5.12.2.

RemediationAI

Upgrade to network-ai v5.12.2, confirmed by the vendor release at https://github.com/Jovancoding/Network-AI/releases/tag/v5.12.2 and patch commit https://github.com/Jovancoding/Network-AI/commit/a59c13a1f0ce0e8a0779a90343eef92fac5ab4c3. The fix adds a secret option to ApprovalInbox; when set, POST /:id/approve and POST /:id/deny require an Authorization: Bearer <secret> header validated with crypto.timingSafeEqual to prevent timing-attack recovery of the secret. Operators who cannot patch immediately should verify that startServer() is bound exclusively to 127.0.0.1 (the default) to eliminate direct remote network access - note this does not prevent the CSRF path via a malicious webpage, so this workaround is incomplete. As an additional control, restrict network-level access to the inbox port via host firewall rules (e.g., iptables/nftables dropping inbound traffic to the inbox port) to block both direct and SSRF-based exploitation; this has no functional side effect if only the operator's own browser needs access. Disabling the ApprovalGate/ApprovalInbox feature entirely removes the attack surface but also eliminates the human-in-the-loop safety control for high-risk agent operations.

Affected VersionsENISA

Network-AI 5.0.0, < 5.12.2

Affected Packages

npm network-ai fix: 5.12.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Network-AI is a TypeScript/Node.js multi-agent orchestrator (npm package network-ai, CPE: cpe:2.3:a:jovancoding:network-ai:*:*:*:*:*:*:*:*) that provides shared state, guardrails, budgets, and cross-framework agent coordination. Its ApprovalGate component is documented as the mechanism for requiring explicit human approval before executing high-risk operations - writes, shell commands, and budget spend. The network surface for this control is ApprovalInbox (lib/approval-inbox.ts), which exposes a REST/SSE HTTP server. The root causes are CWE-352 (Cross-Site Request Forgery) and CWE-862 (Missing Authorization): the httpHandler() function sets Access-Control-Allow-Origin: * on every response unconditionally, and routeRequest() dispatches POST /approvals/:id/approve and POST /approvals/:id/deny without any authentication check. This is described in the GHSA advisory as the same vulnerability class already fixed twice on the MCP server component (GHSA-fj4g-2p96-q6m3, GHSA-j3vx-cx2r-pvg8) that was never applied to the auxiliary ApprovalInbox server.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:N
vuln.today AI 5.9 MEDIUM

Wildcard CORS CSRF path requires operator browser visit (UI:R, AC:H); non-loopback binding enables direct PR:N/UI:N exploitation scored separately at 8.1.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:A/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Jul 20, 2026 - 18:18 EUVD

DescriptionCVE.org

Network-AI, a TypeScript/Node.js multi-agent orchestrator, has a shipped, exported, documented feature called ApprovalInbox (lib/approval-inbox.ts). It is the network surface of the human-in-the-loop Approval Gate, which ApprovalGate uses to require explicit human approval for high-risk operations. The HTTP server it exposes has no authentication of any kind and sets Access-Control-Allow-Origin: * on every route, including the state-changing POST /approvals/:id/approve and /deny. As a result, in versions 5.0.0 through 5.12.1, any party who can send an HTTP request to the inbox port - a co-located process, a container/SSRF on the same host, a remote client when the operator binds a non-loopback address, or any website the operator visits in a browser (via the wildcard CORS) - can enumerate pending approvals and approve them, defeating the entire human-in-the-loop control and causing the gated high-risk action (e.g. a shell command the agent was holding for review) to execute without consent. This issue is fixed in v5.12.2. ApprovalInbox now accepts a secret option. When set, the mutating endpoints POST /:id/approve and POST /:id/deny require an Authorization: Bearer <secret> header, validated in constant time with crypto.timingSafeEqual. startServer() already binds to 127.0.0.1 by default; operators exposing the inbox on a network must set a secret.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche AI multi-agent orchestrator npm package, not widely deployed
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy