Drop fast-glob: it brings a braces advisory to every dependent
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
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JsCommunity/app-conf
-
Add schema supportĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
JsCommunity/app-conf#21 ·
Tất cả issue của JsCommunity/app-conf
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 2 ngày
-
good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
saayam-for-all/webapp#1919 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Uuriko/project-room#3728 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
vercel/ai#23435 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs(site): Mermaid edge-label contrast on Architecture and a table header on How it comparesĐang mởdocumentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
devops-thiago/ThrillhouseBot#1132 ·
Maintainer thường phản hồi trong vòng 1 ngày