This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+14 more
Affected surfaces
ReleasePort's take
Moderate signalThe release fixes an OS command injection vulnerability in ShellExecutor and adds permissionβdenied audit logging to check_permission.py.
Why it matters: Addresses a highβseverity (95) command injection flaw; introduces audit logs for every permission denial, improving security observability.
Summary
AI summaryUpdates π Fixed, β Verification, and v5.9.0 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Fixes OS command injection vulnerability in ShellExecutor by removing shell invocation. Fixes OS command injection vulnerability in ShellExecutor by removing shell invocation. Source: llm_adapter@2026-06-02 Confidence: low |
β |
| Security | High |
Eliminates OS command injection by executing commands without a shell. Eliminates OS command injection by executing commands without a shell. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
β |
| Security | High |
Adds quote-aware parsing and rejects unquoted metacharacters before allowlist matching. Adds quote-aware parsing and rejects unquoted metacharacters before allowlist matching. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
β |
| Feature | Low |
Adds commandβinjection regression tests covering various injection techniques. Adds commandβinjection regression tests covering various injection techniques. Source: granite4.1:30b@2026-06-02-audit Confidence: low |
β |
| Bugfix | Medium |
Adds permission_denied audit logging to scripts/check_permission.py on every denial. Adds permission_denied audit logging to scripts/check_permission.py on every denial. Source: llm_adapter@2026-06-02 Confidence: low |
β |
| Bugfix | Low |
Corrects false positive networkβaccess detection for lib/telemetry-provider.ts in socket.json. Corrects false positive networkβaccess detection for lib/telemetry-provider.ts in socket.json. Source: llm_adapter@2026-06-02 Confidence: high |
β |
Full changelog
Network-AI v5.9.1 β Critical Security Patch
π Security β GHSA-qw6v-5fcf-5666 (Critical, CWE-78 OS Command Injection)
SandboxPolicy.isCommandAllowed glob-matched the entire command string, but ShellExecutor then ran that string through /bin/sh -c (or cmd.exe /c). A scoped allowlist entry such as git *, npm *, or node * therefore also matched chained payloads like git status; id, and the injected command executed β defeating the one control the threat model designates against a compromised agent (Adversary 3.2).
Fixed:
- Commands now execute via
spawn(file, args, { shell: false })using a parsed argv β no shell is ever invoked, so metacharacters cannot be interpreted. - A new quote-aware
parseCommandLine()tokenizer backs bothisCommandAllowed()and the newSandboxPolicy.tokenizeCommand(). - Any unquoted shell metacharacter (
;&|$`()<>{}newline) or unterminated quote is rejected before the allowlist glob match. - Quoted metacharacters are preserved as literal argument data.
Reported by lexdotdev.
π Fixed
scripts/check_permission.pyβ permission_denied audit logging:audit_summaryreads explicitpermission_deniedevents (v5.9.0), but the permission checker never wrote them. A new_deny()helper now logs apermission_deniedaudit event (agent_id,resource_type,scope,reason,scores) at every denial point β high-risk confirmation, insufficient justification, low trust, excessive risk, below-threshold weighted score.- Socket.dev Network-access false positive β declared
lib/telemetry-provider.ts/dist/lib/telemetry-provider.jsinsocket.json. The module defines the BYOTITelemetryProviderinterface andcreateOtelHooks()factory and makes no outbound HTTP calls. - Tests β added command-injection regression coverage (chaining, pipe,
$(), backticks, redirection, newline, quoted-literal handling,tokenizeCommand); converted shell-builtin test commands tonode -esince execution is now shell-free.
β Verification
npx tsc --noEmitβ clean- Full suite β 3,161 tests across 31 suites passing
Upgrade urgency: HIGH for any deployment that grants agents ShellExecutor access with a scoped allowlist.
Security Fixes
- GHSA-qw6v-5fcf-5666 β Fixed OS Command Injection (CWE-78) by eliminating shell invocation and adding strict tokenization/validation of commands
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]