Windows sandbox: toolchain access is granted on the shared Program Files folder itself
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
Start by reading native/sandbox-helper/src/win.rs, especially the ACL grant near line 1732 and recovery around line 1646; trace how Program Files toolchains are selected for staging versus a shared-folder grant. Compare the proposal's staging default, narrower bin grant, and launch-time recovery options. Done means the chosen approach limits access to the necessary files and cleans up any temporary permissions after forced termination.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
From Finding 1 of the earlier SECURITY-REVIEW.md, checked against the current code on 2026-10-07.
Problem
When a Program Files toolchain folder isn't readable by app containers but its permissions are writable, the helper grants that run's container SID FILE_READ_EXECUTE on the shared install folder itself (native/sandbox-helper/src/win.rs:1732: edit_acl(&plan.source, sid, FILE_READ_EXECUTE, Change::Grant)). The grant is inherited by everything below it. It is revoked at cleanup, or by recovery at the next helper start after a forced kill (record.granted, win.rs:1646).
Impact (bounded)
- While the command runs, it can read every file in that install folder, not just the toolchain's public files.
- After a forced kill, the ACE stays until the next helper start. The SID is unique per run, so no later process gets that access. The leftover is clutter on a system folder rather than an open door.
Proposal
Make staging (the private read-only copy, already used for protected installs) the default for Program Files toolchains, and keep the shared-folder grant as a last resort. Or grant only the smallest folder needed (for example bin). Optionally start a recovery pass when the app launches, so a forced kill leaves no ACE behind until the next command.
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 2
- Merge medio
- 5h 28m
- PR unite (30g)
- 24
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 PierrunoYT/patch
-
enhancement platform: windows priority: low severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PierrunoYT/patch#198 ·
I maintainer di solito rispondono entro 1 giorno
-
priority: medium security severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
PierrunoYT/patch#66 ·
I maintainer di solito rispondono entro 1 giorno
-
bug platform: macos priority: low severity: low tests
Difficoltà 3/5 1-2 giorni Idoneità per principianti 56/100
PierrunoYT/patch#218 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement priority: low security severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
PierrunoYT/patch#211 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement platform: windows priority: low severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
PierrunoYT/patch#206 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PierrunoYT/patch
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
lukilabs/beautiful-mermaid#160 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
rescript-lang/rescript-lang.org#1420 ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
chthollyphile/folia-major#520 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
databuddy-analytics/Databuddy#1106 ·
I maintainer di solito rispondono entro 1 giorno