1.4 KiB
1.4 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-005 | ready | 0 | p0 |
|
phase-0/path-traversal-check | null | null | null | null |
DIS-005: Path-Traversal-Check in /new-agent
Ziel
/new-agent name:<x> akzeptiert keinen Namen, der aus dem Workspace-Root ausbricht.
Defense in depth: Regex-Validierung + expliziter path.resolve-Containment-Check.
Kontext
Aktuell gibt es Regex-Validierung in src/commands/new-agent.ts, aber keinen
path.resolve-Containment-Check. Edge-Cases: .., Unicode-Homoglyphen, ., leere Strings, Windows-reserved Names.
→ docs/development-plan.md Phase 0 Task 4.
Scope
- In: Nach Regex in
new-agent.ts:
Saubere User-Fehlermeldung im Discord-Channel.const root = path.resolve(config.workspaces_root); const wsPath = path.resolve(root, name); if (!wsPath.startsWith(root + path.sep)) throw new Error("Path traversal"); - Out: Unicode-Normalisierung über Regex hinaus
Definition of Done
- Containment-Check ist aktiv in
src/commands/new-agent.ts - Unit-Test
tests/unit/path-traversal.test.tsdeckt:../etc,..,./foo,a/../b, leerer String,CON(Windows-reserved), Unicode-Homoglyphen npm run build && npm testgrün
Dateien (erwartet)
src/commands/new-agent.tstests/unit/path-traversal.test.ts
Abhängigkeiten
Keine. Kann parallel laufen.
Spec
→ docs/backlog.md #DIS-005