security: macOS sandbox may allow hard links that bypass hidden home folders and read-only Git metadata
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 15/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- macos, rust, typescript
Direzione di ricerca
Start by reproducing on macOS: the Seatbelt profile decides whether link() into the project is allowed, and read() in file_ops/unix.rs calls regular(file, false), which accepts hard-linked files. Confirm that ln ~/x proj/y and ln .git/config z succeed, then check the file-link rule. Done means both links fail under the sandbox, and reads refuse nlink > 1 or the rule is tightened, with sandbox_macos.integration.test.ts covering it. Security design choices here need a maintainer's input.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found in the 2026-10-09 codebase audit.
Needs verification on a Mac.
Problem
Seatbelt checks paths, and only existing hard-linked Git metadata is refused. If the profile allows link() from a home file into the project, reading the link bypasses the hidden home folder, and linking .git/config bypasses read-only Git metadata. Also, the POSIX helper's read() (file_ops/unix.rs) calls regular(file, false) and accepts hard-linked files, so read_file would return such a link. bwrap is safe: hard links across mounts fail.
Fix
Verify, then deny file-link into the project for targets outside it (or refuse nlink > 1 on reads).
Test
sandbox_macos.integration.test.ts: ln ~/x proj/y and ln .git/config z fail.
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
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
-
tests
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
PierrunoYT/patch#393 · 1 commento ·
-
ci: macOS hardened-runtime smoke step fails because the re-signed app's helpers cannot connect (#28)Apertabug platform: macos tests
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
PierrunoYT/patch#392 · 1 commento ·
-
blocked platform: windows
Difficoltà 4/5 1-2 giorni Idoneità per principianti 52/100
PierrunoYT/patch#329 · 3 commenti ·
-
performance priority: low severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
PierrunoYT/patch#324 ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 36/100
PierrunoYT/patch#272 · 1 commento ·
Tutte le issue di PierrunoYT/patch
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
keptinventory/kept#336 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
hemi-earn
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
vetro-protocol/vetro-monorepo#1013 ·
I maintainer di solito rispondono entro 1 giorno