opencode sandbox policy: npm child-process CONNECT denied (ECONNRESET) and no Vertex AI / WIF egress
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, yaml
- Ambito
- infrastructure, security
Direzione di ricerca
Start by reading sandboxes/base/policy.yaml and sandboxes/gemini/policy.yaml, then compare the existing npm policies for droid and ollama and the Google host set in the gemini policy. Reproduce the npm install and Vertex AI/WIF requests, and consider the issue done when both policies permit the required npm processes and Google endpoints without breaking the existing sandbox rules.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The opencode network policy (in both sandboxes/base/policy.yaml and sandboxes/gemini/policy.yaml) has two egress gaps that break real-world OpenCode usage:
-
npm installs fail with
ECONNRESET.registry.npmjs.orgis listed as an endpoint, but thenpmbinary is not in the policy'sbinaries:allowlist. When opencode spawns a backgroundnpm install(arborist), the connecting process is/usr/local/bin/npm(or/usr/bin/npm), not
the allowlisted opencode/node binaries, so its CONNECT toregistry.npmjs.orgis denied. -
No Google / Vertex AI egress. The
opencodepolicy has zero Google hosts, so running OpenCode against agoogle-vertex-*provider (Vertex AI, including Workload Identity Federation) cannot reach the requiredGoogle endpoints.
Environment
- Base image:
nvcr.io/nvidia/base/ubuntu:noble-20251013(Ubuntu 24.04) - Node
22.22.1-1nodesource1, npm11.11.0,opencode-ai@1.2.18(global) - Sandbox invoked non-interactively:
openshell sandbox exec -- sh -c <cmd>
Repro - npm ECONNRESET
- Start an opencode sandbox.
- In a repo whose deps aren't fully installed, trigger opencode's background dependency install (or run
npm installdirectly). - The CONNECT to
registry.npmjs.orgis denied →ECONNRESET.
Expected: npm reaches registry.npmjs.org (endpoint already allowlisted).
Actual: connection reset, because the npm binary isn't in the opencode policy's binaries: list.
Root cause: policy pairs are (binary, endpoint). registry.npmjs.org is a plain CONNECT tunnel (no tls: terminate), so this is not TLS-MITM - it is a binary allowlist gap. droid and ollama already ship dedicated npm policies; opencode never allowlists npm.
Repro - Vertex AI / WIF egress
- Configure opencode with a
google-vertex-anthropic/*model. - Run any request.
- Auth token exchange and inference fail: no route to
sts.googleapis.com,oauth2.googleapis.com, or*-aiplatform.googleapis.com.
Note: the gemini policy ships the Google auth host set but uses service-account impersonation, so it lacks sts.googleapis.com.
GitHub-OIDC Workload Identity Federation additionally requires sts.googleapis.com:443.
Proposed fix
- Add
/usr/local/bin/npmand/usr/bin/npmto theopencodepolicy'sbinaries:(or a shared dedicatednpmpolicy as droid/ollama do). - Add the Vertex AI + Google token hosts (mirroring
gemini, plussts.googleapis.comfor WIF) to theopencodepolicy'sendpoints:.
A PR applying (1) and (2) to the base and gemini policies will follow.
- Lingua principale
- Dockerfile
- Stelle
- 191
- Fork
- 76
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/OpenShell-Community
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di NVIDIA/OpenShell-Community
Issue simili
-
kb-infra-drift
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
OCHA-DAP/ds-knowledge-base#653 · 1 commento ·
-
intake mcp-intake needs-ac needs-human-review priority:medium type:feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Ikalus1988/MisakaNet#2102 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
llvm/lighthouse#283 ·
-
🤔 refinement needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
equinor/radix-operator#1979 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100