This release includes 5 security fixes for security teams reviewing exposed deployments.
Topics
+14 more
Affected surfaces
Summary
AI summaryUpdates Moderate, High, and backupsDir across a mixed release.
Full changelog
Security patch fixing 5 reported vulnerabilities in EnvironmentManager, SandboxPolicy, and ApprovalInbox.
Security fixes
GHSA-6x2m-p4xp-wg22 (Moderate) — EnvironmentManager.backup() symlink escape
_collectBackupFiles()now useslstatSyncand skips entries whereisSymbolicLink()is true. Symlinks are never followed, preventing backup from reading files outside the environment root.
GHSA-48x2-6pr9-2jjf (Moderate) — EnvironmentManager.restore() backup ID path traversal
restore()validatesbackupIdagainst/^[\w\-]+$/and assertsdirname(backupPath) === resolve(backupsDir)before any filesystem access. IDs like../../etcare rejected immediately.
GHSA-2fmp-9rvw-hc96 (High) — Poisoned backup manifest arbitrary recursive deletion
pruneBackups()no longer usesentry.pathfrom the manifest forrmSync. The deletion path is recomputed fromentry.backupIdafter format validation, and adirnamecheck enforces exactly one level of depth under the backups directory. A poisoned"path": "/"in a manifest is now harmless.
GHSA-jvcm-f35g-w78p (Moderate) — AgentRuntime sandbox path-prefix bypass
SandboxPolicy.resolvePath()andisPathAllowed()now use sep-anchored prefix checks (basePath + sep). The previous barestartsWith(basePath)check allowed/foo/barextrato match basePath/foo/bar.
GHSA-mxjx-28vx-xjjj (Moderate) — ApprovalInbox HTTP server unauthenticated
- New
secretoption onApprovalInboxOptions. When set,POST /:id/approveandPOST /:id/denyrequireAuthorization: Bearer <secret>. Validation usestimingSafeEqual(constant-time) to prevent timing oracle attacks.startServer()continues to default to127.0.0.1(loopback only).
Changed
- Version bump 5.12.1 -> 5.12.2 across all manifests and documentation headers.
Install: npm install [email protected] -- Published to npm with provenance.
Upgrading from 5.12.1: No breaking changes. The ApprovalInbox secret option is opt-in; existing deployments without a secret continue to work (backward-compatible but unauthenticated -- set a secret for any network-exposed instance).
Security Fixes
- GHSA-6x2m-p4xp-wg22 (Moderate) — EnvironmentManager.backup() symlink escape prevented by skipping symlinks
- GHSA-48x2-6pr9-2jjf (Moderate) — EnvironmentManager.restore() backup ID path traversal blocked with regex validation and dirname check
- GHSA-2fmp-9rvw-hc96 (High) — pruneBackups() no longer follows poisoned manifest paths, limiting deletion to one level under backupsDir
- GHSA-jvcm-f35g-w78p (Moderate) — SandboxPolicy resolvePath/isPathAllowed now use sep‑anchored prefix checks to avoid path‑prefix bypass
- GHSA-mxjx-28vx-xjjj (Moderate) — ApprovalInbox HTTP server gains optional `secret` for bearer token auth with constant‑time comparison
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Jovancoding/Network-AI
Multi-agent orchestration MCP server with race-condition-safe shared blackboard. 20+ MCP tools: blackboard read/write, agent spawn/stop, FSM transitions, budget tracking, token management, and audit log query. `npx network-ai-server --port 3001`.
Related context
Beta — feedback welcome: [email protected]