Scan browser runs without Chromium's sandbox
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 46/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- playwright, typescript
Piste de recherche
Start in src/deps/real.ts at makeSharedBrowser and trace how launch failures, run output, doctor findings, and Result coverage are represented. Read the existing config and threat model, then locate the relevant tests and add coverage for default sandbox launch, all three fallback disclosures, and require refusing with exit 4. Done when those behaviors and the three specified CDP and browser threat model points are covered.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What happens
usabl launches its scan browser with chromium.launch({ headless: true }) (src/deps/real.ts, makeSharedBrowser). Playwright adds --no-sandbox unless chromiumSandbox: true is passed, and usabl never passes it. Every page usabl scans runs without Chromium's sandbox: the app, its docs pages, and any third-party scripts they load.
Why it matters
The sandbox is what contains a page that exploits a Chromium rendering bug. Without it, such a page runs code with the rights of the user running usabl. That user can read the repository, local keys, and the signed-in session from USABL_STORAGE_STATE. In CI, it can read the runner's tokens.
Decision
- Launch with the sandbox on by default.
- When the system cannot provide a sandbox (for example Ubuntu 23.10 and later with restricted user namespaces, or many containers), fall back to an unsandboxed launch and disclose it: a line in the run output, a
usabl doctorfinding with the fix, and a note in the Result's coverage section. The fallback changes no verdict. - A config option (for example
"browserSandbox": "require") refuses to scan unsandboxed: exit 4 with a message that says how to enable the sandbox. - Tell a sandbox failure apart from other launch failures, so a missing Chromium or a crash is not reported as a sandbox problem.
Acceptance
- A test proves the default launch asks for the sandbox.
- A test proves the fallback is disclosed in all three places.
- A test proves
requirerefuses with exit 4. - The threat model gains a section on CDP and the browser covering three points. First, CDP runs over a pipe and no port is opened. Second, page-world reads versus isolated worlds. Third, the sandbox, plus a note that a caller's own browser passed to
checkPageis the caller's exposure.
Notes
Checked on 2026-10-27. A scan browser carries --remote-debugging-pipe and --no-sandbox, and ss shows no listening TCP socket owned by it. A sandboxed launch works on a Fedora 43 host.
- Langage dominant
- TypeScript
- Étoiles
- 0
- Forks
- 0
- Merge moyen
- 6 h 42 min
- PR mergées (30 j)
- 44
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de usabl-dev/usabl
-
area: engine enhancement performance
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
area: engine enhancement performance
Difficulté 4/5 1-2 jours Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
-
area: engine enhancement performance
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
-
area: engine enhancement performance
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de usabl-dev/usabl
Issues similaires
-
bug triage
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Export the Hemi Earn Router address and the Router and Agent ABIs from `@vetro-protocol/earn`Ouvertehemi-earn
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
vetro-protocol/vetro-monorepo#1043 ·
Les mainteneurs répondent en général sous 1 jour
-
stage 2: bare names resolve against PATH differently from the shell (empty and relative entries)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
STRML/omp-classifier#206 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
atlassian-labs/mermaid-diagrams-viewer#188 ·
Les mainteneurs répondent en général sous 1 jour
-
dashboard enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Olanetsoft/agent-lookout#225 ·
Les mainteneurs répondent en général sous 1 jour