DIS-002: shell:false + cross-spawn Windows-Fix im Runner #3

Closed
opened 2026-04-08 14:14:31 +00:00 by dev · 0 comments
Owner

Ziel

Command-Injection ueber Discord-Input eliminieren. shell: true aus runner.ts entfernen. Windows-.cmd-Wrapper korrekt aufloesen, CVE-2024-27980 umgehen.

Kontext

src/agent/runner.ts nutzt aktuell shell: true -- Shell-Injection-Vektor. spawn('claude', args, { shell: false }) schlaegt auf Windows fehl (nur claude.cmd).
Referenz: docs/development-plan.md Abschnitt 2.2

Scope

In: cross-spawn als Dependency, src/runtime/resolve-claude.ts mit resolveClaude(), runner.ts: shell: false, windowsHide: true, UTF-8-Encoding
Out: sanitizedEnv() (DIS-003), --bare-Flags (DIS-004)

Definition of Done

  • Kein shell: true im gesamten src/-Baum
  • cross-spawn in package.json
  • resolveClaude() wirft klare Fehlermeldung wenn nicht auffindbar
  • Unit-Test tests/unit/resolve-claude.test.ts gruen
  • npm run build && npm test gruen

Branch

phase-0/harden-spawn

Abhaengigkeiten

Keine. Empfohlener Startpunkt.

## Ziel Command-Injection ueber Discord-Input eliminieren. `shell: true` aus `runner.ts` entfernen. Windows-`.cmd`-Wrapper korrekt aufloesen, CVE-2024-27980 umgehen. ## Kontext `src/agent/runner.ts` nutzt aktuell `shell: true` -- Shell-Injection-Vektor. `spawn('claude', args, { shell: false })` schlaegt auf Windows fehl (nur `claude.cmd`). Referenz: `docs/development-plan.md` Abschnitt 2.2 ## Scope **In:** `cross-spawn` als Dependency, `src/runtime/resolve-claude.ts` mit `resolveClaude()`, `runner.ts`: `shell: false`, `windowsHide: true`, UTF-8-Encoding **Out:** `sanitizedEnv()` (DIS-003), `--bare`-Flags (DIS-004) ## Definition of Done - [ ] Kein `shell: true` im gesamten `src/`-Baum - [ ] `cross-spawn` in `package.json` - [ ] `resolveClaude()` wirft klare Fehlermeldung wenn nicht auffindbar - [ ] Unit-Test `tests/unit/resolve-claude.test.ts` gruen - [ ] `npm run build && npm test` gruen ## Branch `phase-0/harden-spawn` ## Abhaengigkeiten Keine. **Empfohlener Startpunkt.**
dev added this to the Phase 0 � H�rtung milestone 2026-04-08 14:14:31 +00:00
dev added the
type:fix
phase:0
priority:p0
security
labels 2026-04-08 14:14:31 +00:00
dev closed this issue 2026-04-09 08:34:43 +00:00
Sign in to join this conversation.
No description provided.