Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessControl cassette name via untrusted input (test/request/agent data)
-
DeliveryInject '../' traversal passed to load() or save()
-
Exploitpath.join normalizes name outside cassettePath, no containment check
-
ExecutionRead arbitrary .json or overwrite policy files
-
ImpactForge AuthGuardian trust config / invalidate legitimate agent tokens
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Relative path traversal prevention
|
| Exploitation Conditions | Exploitation requires the attacker to control the 'name' argument passed to AgentVCR.load() or AgentVCR.save(), and the consuming application must derive that cassette name from an untrusted source (test parameters, request data, or agent instructions) rather than a hardcoded constant. The primitive is bounded to paths resolving to a '.json' suffix and to the files the process itself can read or write, with no demonstrated path to code execution. Limiting factors: this is a library-level flaw, so a deployment that only ever passes fixed, trusted cassette names is not exploitable; the CVSS PR:L indicates some privilege/participation in the orchestration is needed; and impact is confined to disclosing or corrupting .json files (including forging AuthGuardian trust-level config or invalidating active-grant tokens). The vendor's suggested remediation is an identifier allowlist plus a resolved-directory containment check on both methods. |
| Impact | This is a genuine high-impact flaw whose real-world priority is tempered by a library-boundary dependency, so the signals must be weighed carefully. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:H/VI:H/VA:H) scores 8.7 and reflects a low-complexity attack needing only low privileges and no user interaction, yielding full read/write over JSON files and the ability to forge AuthGuardian trust-level configuration. However, these severity metrics describe the capability once an attacker controls the cassette name - they do not by themselves establish that the name is reachable from an untrusted source in a given deployment; the advisory itself notes the strongest counter-argument is that the name might be a hardcoded constant, which it rebuts only at the general library-API level, not for every consumer. No EPSS score is provided, so widespread-exploitation probability cannot be quantified. The vulnerability is NOT listed in CISA KEV and there is no indication of active exploitation. A public proof-of-concept reproduction script is published in the GHSA advisory demonstrating the read primitive escaping the cassette directory. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a serious issue warranting prompt remediation rather than an active-exploitation fire drill. The most important conflict to resolve before acting: the CVE description and the VulnCheck footer state the issue is fixed in 5.15.5, while the GHSA advisory body states 'not fixed,' lists the latest checked release as 5.15.4, and says no fix for this code path has been released - verify the actual patched version with the vendor before relying on an upgrade. |
| Exploit ScenarioDerived | In a multi-agent orchestration or testing deployment where AgentVCR cassette names are derived from test parameters, request data, or agent instructions, an attacker who can influence that name supplies a value like '../../config/trust' to AgentVCR.save(), writing attacker-chosen JSON outside the intended cassette directory. By overwriting AuthGuardian's trust-level configuration the attacker causes the orchestrator to grant privileges to an agent the operator had placed below the denial threshold, or uses load() to read sensitive .json files such as stored credentials. A public PoC reference exists in the advisory demonstrating the read primitive; it is not verified as a weaponized exploit, and no remote code execution path was demonstrated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
Path traversal in Network-AI's AgentVCR component lets a caller who controls the cassette name passed to load() or save() read arbitrary .json files or overwrite them anywhere the Node.js process has filesystem permissions. Versions 5.13.4 through 5.15.4 of the npm package network-ai are affected; 5.15.5 is the first release containing the fix. The impact is a confidentiality and integrity breach confined to paths ending in .json: an attacker can disclose secrets held in JSON configuration and, per the upstream advisory, overwrite AuthGuardian trust-level configuration to obtain a grant an operator's policy had denied, or corrupt the active-grant store to invalidate legitimate agents' tokens - no code execution path was demonstrated. Exploitation depends on the consuming application deriving cassette names from an untrusted source, requires some privilege within the orchestration (CVSS PR:L), and the upstream advisory itself publishes a reproducible proof-of-concept script demonstrating the file-read primitive; no confirmed active exploitation is reported.
RemediationAI
Upgrade the network-ai npm package to 5.15.5 or later - the first release that closes the traversal, per the advisory's fixed-version metadata and the CVE's 'before 5.15.5' range; the fix mirrors the containment approach already used for EnvironmentManager.restore(), combining a strict identifier allowlist (e.g. /^[\w-]+$/) with an assertion that the resolved cassette directory equals the resolved cassettePath, applied to both load() and save(). If upgrading is not immediately possible, the exposure can be removed at the call site: never derive cassette names from request data, test parameters, or agent instructions - pin them to hardcoded constants - and wrap load()/save() with your own validation that rejects names containing '..', '/', or '\\' before the call, accepting that this rejects legitimate nested cassette namespacing and must be reimplemented in every consuming service. Disabling AgentVCR record/replay entirely removes the vulnerable code path but costs the record/replay capability the library provides for agent testing. Note that the vulnerability is only reachable when a consuming application forwards an untrusted name into these methods, so inventorying call sites is the fastest way to determine whether a given deployment is actually exposed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
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 orchestration library distributed on npm, published by Jovancoding and covered by the wildcard CPE cpe:2.3:a:jovancoding:network-ai (all versions), with the vulnerable module first shipped in 5.13.4. The root cause is CWE-23 relative path traversal: AgentVCR.load() and AgentVCR.save() in lib/agent-vcr.ts (lines ~170-194) build the cassette path as join(this.config.cassettePath, ${name}.json) and pass it straight to readFile() / writeFile() without a normalization-and-containment check. Because Node's path.join() normalizes embedded '..' segments, a name such as '../outside/secret' resolves outside the configured cassette directory; the appended .json suffix does not neutralize preceding traversal segments, and simply bounds the primitive to JSON files. The advisory states no resolve()-based comparison, separator rejection, or allowlist exists in that module, and that an earlier fix adding an identifier regex plus a resolved-directory containment assertion to EnvironmentManager.restore() in lib/env-manager.ts was scoped only to that method and never applied to AgentVCR. The read and write primitives are limited to the process's own filesystem authority; a load() followed by save() lets attacker-chosen JSON be copied to an attacker-chosen .json path, which is how the advisory forges the orchestrator's own policy state.
Know when Network Ai 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Name reaches the sink over network-derived input (AV:N, AC:L); the attacker must be a participant able to supply names, so PR:L; arbitrary .json read gives C:H, overwrite of policy files I:H, and token invalidation A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Network-AI from 5.13.4 before 5.15.5 contains a path traversal vulnerability in AgentVCR that allows attackers controlling the cassette name to read or write arbitrary .json files. Attackers can pass traversal sequences to load() or save() to disclose sensitive JSON data or overwrite policy files such as AuthGuardian trust-level configuration.
Technical POC Analysis
CWE-23 relative path traversal in lib/agent-vcr.ts of the npm package network-ai.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The AgentVCR component in Network-AI versions 5.13.4 through 5.15.4 is vulnerable to a path traversal flaw that allows an authenticated orchestrator to read or overwrite any .json file accessible to the Node.js process. This could expose sensitive configuration data and enable manipulation of AuthGuardian trust-level settings, potentially granting unauthorized agent privileges and undermining policy enforcement. Leadership should prioritize remediation to protect confidentiality and integrity of orchestration configurations.
Vendor-released patch: 5.15.5
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Related Vulnerabilities in Network-AI Path Traversal and Missing Authentication
View all 4More in Network Ai
View allAuthentication bypass in Network-AI versions 5.7.1 and earlier allows unauthenticated remote attackers to invoke all 22
SandboxPolicy bypass in Network-AI (versions before 5.15.1) enables authenticated attackers to execute arbitrary blocked
Truncation-induced interpretation conflict in Network-AI ClaudeHookBridge before 5.15.1 enables low-privileged attackers
Deny-pattern bypass in Network-AI's ClaudeHookBridge PreToolUse hook (versions 5.14.0 through 5.15.1) allows a prompt-in
Arbitrary recursive file deletion in Network-AI (npm package `network-ai`) before v5.12.2 allows a local attacker who ca
Sandbox path containment bypass in Network-AI's AgentRuntime (npm package `network-ai` by jovancoding) allows any low-pr
Path traversal in Network-AI's EnvironmentManager.restore() allows a local authenticated caller to copy arbitrary direct
Unauthenticated access to the ApprovalInbox HTTP server in Network-AI 5.0.0-5.12.1 allows any party that can reach the i
Symlink traversal in Network-AI's EnvironmentManager.backup() allows a local attacker with write access to an environmen
EUVD-2026-115001
GHSA-5c2w-7m65-p4gf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB