Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#22 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
82/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, nodejs
Lĩnh vực
tooling

Hướng nghiên cứu

Lệnh gọi glob duy nhất nằm trong _entries.js, file này liệt kê config.* trong các thư mục vendor, system và global bằng fast-glob. Thay nó bằng fs.promises.readdir(dir, { withFileTypes: true }), giữ lại các tệp và liên kết tượng trưng có tên bắt đầu bằng config., trả về rỗng khi thư mục không tồn tại, và tiếp tục bỏ qua EACCES như ignoreAccessErrors đang làm hiện nay. Sau đó xóa fast-glob khỏi package.json. Hoàn thành khi các bài kiểm thử hiện có đều pass và npm audit không còn báo cáo cảnh báo braces cho app-conf.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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).

Ngôn ngữ chính
JavaScript
Star
1
Fork
1
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của JsCommunity/app-conf

Tất cả issue của JsCommunity/app-conf

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.