Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Drop fast-glob: it brings a braces advisory to every dependent

Chiusa Adatta ai principianti
#22 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, nodejs
Ambito
tooling

Direzione di ricerca

L'unica chiamata glob si trova in _entries.js, che elenca config.* nelle directory vendor, system e global con fast-glob. Sostituiscila con fs.promises.readdir(dir, { withFileTypes: true }), mantenendo i file e i link simbolici il cui nome inizia con config., restituendo nulla per una directory mancante e continuando a ignorare EACCES come fa oggi ignoreAccessErrors. Poi rimuovi fast-glob da package.json. Il lavoro è completo quando i test esistenti passano e npm audit non segnala più l'avviso braces per app-conf.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

npm audit reports 4 high-severity vulnerabilities in every app that depends on app-conf, through fast-glob → micromatch → braces (GHSA-vfj7-8cjw-p6xm, stack exhaustion on deeply nested brace patterns). No patched braces release exists, and npm audit fix suggests downgrading app-conf to 4.1.0.

It isn't exploitable through app-conf: fast-glob is only used in _entries.js to list config.* in three fixed directories (vendor, system, global), never with user input. But every dependent still gets the warning.

Suggestion: listing one directory doesn't need a glob engine. fs.promises.readdir(dir, { withFileTypes: true }) filtered on names starting with config. (keeping files and symbolic links, and returning nothing when the directory doesn't exist) would do the same, and drop fast-glob and its whole subtree. It would also avoid a latent Windows issue: fg(path.join(dir, "config.*")) builds the pattern with backslashes, which fast-glob reads as escapes.

Things to keep as today: EACCES handled by ignoreAccessErrors, and no ordering guarantee between several config.* files (fast-glob gave none either).

Lingua principale
JavaScript
Stelle
1
Fork
1
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.