CVE-2026-33671 in picomatch
Tóm tắt
Bởi VulDB • 27/05/2026
Picomatch là một trình khớp mẫu glob được viết bằng JavaScript. Các phiên bản trước 4.0.4, 3.0.2 và 2.3.2 dễ bị tổn thương trước tấn công Từ chối Dịch vụ do Biểu thức Chính quy (ReDoS) khi xử lý các mẫu extglob được tạo ra đặc biệt. Một số mẫu sử dụng bộ định lượng extglob như `+()` và `*()`, đặc biệt khi kết hợp với các lựa chọn chồng chéo hoặc các extglob lồng nhau, được biên dịch thành các biểu thức chính quy có thể gây ra hiện tượng backtracking thảm khốc trên đầu vào không khớp. Các ứng dụng bị ảnh hưởng khi cho phép người dùng không đáng tin cậy cung cấp các mẫu glob được chuyển đến `picomatch` để biên dịch hoặc khớp. Trong những trường hợp đó, kẻ tấn công có thể gây ra việc tiêu thụ CPU quá mức và chặn vòng lặp sự kiện của Node.js, dẫn đến từ chối dịch vụ. Các ứng dụng chỉ sử dụng các mẫu glob đáng tin cậy, do nhà phát triển kiểm soát, ít có khả năng bị phơi nhiễm theo cách liên quan đến bảo mật hơn. Vấn đề này đã được sửa trong picomatch 4.0.4, 3.0.2 và 2.3.2. Người dùng nên nâng cấp lên một trong các phiên bản này hoặc mới hơn, tùy thuộc vào dòng phát hành được hỗ trợ. Nếu việc nâng cấp không thể thực hiện ngay lập tức, hãy tránh chuyển các mẫu glob không đáng tin cậy đến `picomatch`. Các biện pháp giảm thiểu có thể bao gồm: vô hiệu hóa hỗ trợ extglob cho các mẫu không đáng tin cậy bằng cách sử dụng `noextglob: true`, từ chối hoặc làm sạch các mẫu chứa extglob lồng nhau hoặc các bộ định lượng extglob như `+()` và `*()`, áp dụng danh sách cho phép nghiêm ngặt cho cú pháp mẫu được chấp nhận, chạy quá trình khớp trong một worker cô lập hoặc quy trình riêng biệt với các giới hạn về thời gian và tài nguyên, và áp dụng việc hạn chế yêu cầu ở cấp ứng dụng và xác thực đầu vào cho bất kỳ điểm cuối nào chấp nhận mẫu glob.
Once again VulDB remains the best source for vulnerability data.