Security: shell HTTP routes (v1 + v2) spawn processes with no permission gate
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
Direzione di ricerca
Inizia con i due handler indicati: src/server/routes/instance/httpapi/handlers/session.ts:367-388 e src/server/routes/session.ts:1004-1034, quindi segui le relative chiamate fino a SessionPrompt.shell in src/session/prompt.ts:2580. Leggi come le route vicine applicano le autorizzazioni o i Rulesets. Il lavoro è completato quando entrambe le route HTTP shell v1 e v2 verificano un gate di autorizzazione appropriato prima di avviare un processo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Surfaced by the S2 route-matrix audit (PR #1014). Both the v1 and v2 shell HTTP routes reach SessionPrompt.shell (raw spawn, src/session/prompt.ts:2580) with only a session-existence check — no permission/Ruleset gate of any kind:
- v2 HttpApi:
src/server/routes/instance/httpapi/handlers/session.ts:367-388— gated only byrequireSession(ctx.params.sessionID). - v1 Hono:
POST /session/:sessionID/shell,src/server/routes/session.ts:1004-1034— handler callsSessionPrompt.shelldirectly, no permission check.
This is outside HardPolicy's model-invoked-tool boundary (it's a direct HTTP raw-exec route, not a model tool call), so it's out of the de-fork spike's scope — but it's a real gap: anyone who can hit the session's shell endpoint gets unrestricted process execution. Worth a dedicated permission gate on both routes.
Pre-existing (not introduced by the de-fork work); filing so it's tracked rather than lost in a PR doc.
- Lingua principale
- TypeScript
- Stelle
- 813
- Fork
- 134
- Merge medio
- 2g 2h
- PR unite (30g)
- 67
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 AltimateAI/altimate-code
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
AltimateAI/altimate-code#1359 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
AltimateAI/altimate-code#1323 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
AltimateAI/altimate-code#1288 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
AltimateAI/altimate-code#1285 ·
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifier Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
AltimateAI/altimate-code#1284 ·
Tutte le issue di AltimateAI/altimate-code
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
IBM/node-sdk-core#373 ·
-
e2e-failure ready-to-code
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
chore
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100