Drop fast-glob: it brings a braces advisory to every dependent
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- リファクタリング
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript, nodejs
- 領域
- tooling
調査の方向性
glob の呼び出しは _entries.js のみにあり、vendor、system、global の各ディレクトリで config.* を fast-glob で列挙しています。これを fs.promises.readdir(dir, { withFileTypes: true }) に置き換えてください。名前が config. で始まるファイルとシンボリックリンクは残し、ディレクトリが存在しない場合は何も返さず、ignoreAccessErrors が現在行っているように EACCES を無視し続けてください。その後、package.json から fast-glob を削除します。既存のテストが通り、npm audit が app-conf に対する braces の勧告を報告しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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).
- 主要言語
- JavaScript
- スター
- 1
- フォーク
- 1
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JsCommunity/app-conf のほかの issue
-
Add schema supportオープン
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
JsCommunity/app-conf#21 ·
JsCommunity/app-conf の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
keyxmakerx/Chronicle#1469 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
suradet-ps/codeframe#40 ·
メンテナーはふだん 1 日以内に返信
-
data
難易度 1/5 1時間未満 初心者へのやさしさ 74/100
gaseous-project/hasheous#637 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
gramps-project/gramps-web#1549 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100