Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Exploitation needs local write access to the backups directory (AV:L, PR:L) with no user interaction; the primitive deletes files, giving high integrity and availability impact but no confidentiality loss.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Lifecycle Timeline
4DescriptionCVE.org
Network-AI is a TypeScript/Node.js multi-agent orchestrator. Prior to version 5.12.2, EnvironmentManager.listBackups() reads each backup's _manifest.json and trusts the manifest's path field. EnvironmentManager.pruneBackups() later passes that trusted entry.path directly to rmSync(entry.path, { recursive: true, force: true }). An attacker who can place or modify a manifest inside data/<env>/.backups/<name>/_manifest.json can cause network-ai env backup prune --env <env> --keep <n> or any code path invoking pruneBackups() to recursively delete an arbitrary path accessible to the Network-AI process user. This is fixed in v5.12.2. pruneBackups() no longer passes entry.path from the on-disk manifest to rmSync. The deletion path is recomputed from a format-validated entry.backupId, and a dirname containment check confines deletion to exactly one level under the backups directory. A poisoned manifest (e.g. "path": "/") is now inert.
AnalysisAI
Arbitrary recursive file deletion in Network-AI (npm package network-ai) before v5.12.2 allows a local attacker who can write into an environment's backup directory to delete any path the process user can access. EnvironmentManager.pruneBackups() trusts the path field of an attacker-controllable _manifest.json and feeds it straight into rmSync(..., { recursive: true, force: true }), so a poisoned manifest such as "path": "/" gets deleted when network-ai env backup prune runs. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires local write access to a manifest file at `data/<env>/.backups/<name>/_manifest.json` so the attacker can control its `path` field, and requires that `pruneBackups()` subsequently execute - typically via `network-ai env backup prune --env <env> --keep <n>` or any caller of `pruneBackups()`. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, base 7.1) is internally consistent with the description: exploitation is local (the attacker must place or modify a file on disk), low-complexity, and requires some level of existing access (PR:L) but no victim interaction, yielding high integrity and availability impact with no confidentiality loss - matching a delete-only primitive. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An attacker with write access to the environment's backup directory (e.g., a lower-privileged local user, a co-tenant, or via a separate file-write bug) drops or edits `data/dev/.backups/evil/_manifest.json` with `"path": "/"` or a path to a critical file. The next time an operator or automation runs `network-ai env backup prune --env dev --keep <n>` - or any code path calling `pruneBackups()` - Network-AI passes that path to `rmSync(..., { recursive: true, force: true })` and destroys it. … |
| Remediation | Vendor-released patch: upgrade to Network-AI 5.12.2 (npm `network-ai@5.12.2`), which recomputes the deletion path from a validated `backupId` and enforces a `dirname` containment check under the backups directory, rendering a poisoned `"path": "/"` manifest inert; the fix is delivered in commit a59c13a1f0ce0e8a0779a90343eef92fac5ab4c3 (https://github.com/Jovancoding/Network-AI/commit/a59c13a1f0ce0e8a0779a90343eef92fac5ab4c3) and release v5.12.2 (https://github.com/Jovancoding/Network-AI/releases/tag/v5.12.2). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, audit all deployments using network-ai and verify that backup directories have restrictive permissions (write access only for trusted service accounts/administrators). …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
Directory traversal vulnerability in lib/app/index.js in Geddy before 13.0.8 for Node.js allows remote attackers to read
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat
The HTTP server in Node.js 0.10.x before 0.10.21 and 0.8.x before 0.8.26 allows remote attackers to cause a denial of se
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-46034