Request: pin MCP catalog versions, correct write-capable server tiers, sandbox MCP egress
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
Start by locating MCP_CATALOG, buildDefaultMcpServers, and hookSettings, then trace how catalog entries are launched and scoped. The issue calls for reviewed exact version pins, accurate write-capability tiers, per-server consent, agent-level scoping, and a sandbox/proxy boundary with loopback denial or live egress checks. Done means the acceptance tests prove those requirements, including cold-start version resolution.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem. Munder's built-in MCP_CATALOG hardcodes unversioned npx -y <pkg> / uvx <pkg> specs that resolve to whatever is latest on npm/PyPI at every seat's cold start, running with the user's full identity outside the sandbox — a supply-chain risk (a compromised or typosquatted publish runs unsandboxed on every seat at its next start). The filesystem and git servers are both labelled safe-readonly with defaultEnabled: true, but server-filesystem has write/edit/move/create-directory tools and mcp-server-git has commit/add/reset/checkout/branch tools, both scoped to the agent's cwd — which for seats is the whole office tree — and both run outside Claude Code's sandbox entirely. Separately, an MCP stdio server is a child process Claude starts directly, not through Bash, so neither the sandbox's filesystem rules nor the egress-filtering proxy apply to it: the fetch server can reach arbitrary URLs unmediated and has no loopback block, so it can reach Munder's own loopback broker and hook ports (local server-side request forgery).
Proposed fix. Pin every catalog entry to an exact, reviewed version — no bare npx -y/uvx without a version at cold start. Correct the tier labels for server-filesystem and mcp-server-git to reflect their real write capability, and require explicit per-server consent rather than defaultEnabled: true. Scope both to the individual agent's own directory, not the whole office tree. Either run MCP servers inside the same sandbox/proxy boundary Bash-driven tools get (including an explicit loopback deny), or require live proof of egress-allowlist and loopback refusal before any network-capable server (fetch or future additions) is enabled by default.
Acceptance. A live test shows each catalog server resolves to its pinned exact version at cold start; filesystem/git servers carry their true tier label and require per-server consent, scoped per-agent; any network-capable server is proven refused outside its allowlist and refused on loopback before being enabled by default.
Supporting diagnosis with exact code citations (MCP_CATALOG, buildDefaultMcpServers, hookSettings) and exact internal evidence are available on request. Current state: no munder-* MCP tool has appeared live in any seat's session yet, so these risks are latent, not actively exploited today.
- Lingua principale
- TypeScript
- Stelle
- 8.5k
- Fork
- 1.2k
- Merge medio
- 12h 50m
- PR unite (30g)
- 63
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi 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 HarnessMD/munder-difflin
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
HarnessMD/munder-difflin#805 ·
I maintainer di solito rispondono entro 1 giorno
-
Skills catalog shows Install for skills that are already installedForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
HarnessMD/munder-difflin#793 ·
I maintainer di solito rispondono entro 1 giorno
-
Monitor dispatch input is too small to send messagesForse già presa @rajpreetcodes l’ha presa 20 giorni fa. Apertabug os:macos
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
HarnessMD/munder-difflin#720 ·
I maintainer di solito rispondono entro 1 giorno
-
JetBrains Junie CLIApertaenhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
HarnessMD/munder-difflin#510 ·
I maintainer di solito rispondono entro 1 giorno
-
Ask Me counter counts down as questions are answered (5/5 to 1/5), which reads as questions disappearingForse di nuovo libera @xiechimon l’ha presa 47 giorni fa e non c’è nessuna pull request aperta. Apertabug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
HarnessMD/munder-difflin#267 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di HarnessMD/munder-difflin
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
kunchenguid/gh-axi#247 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lidge-jun/opencodex#8101 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
effort:S P3 refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
nightscout/nocturne#3243 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliusBrussee/caveman#1449 ·
I maintainer di solito rispondono entro 1 giorno