CVE-2026-33941 in Handlebars
Tóm tắt
Bởi VulDB • 29/05/2026
Handlebars cung cấp sức mạnh cần thiết để cho phép người dùng xây dựng các mẫu ngữ nghĩa (semantic templates). Trong các phiên bản từ 4.0.0 đến 4.7.8, trình biên dịch trước (precompiler) của CLI Handlebars (`bin/handlebars` / `lib/precompiler.js`) nối trực tiếp các chuỗi do người dùng kiểm soát — bao gồm tên tệp mẫu và một số tùy chọn CLI — vào mã JavaScript mà nó tạo ra, mà không có bất kỳ quá trình thoát ký tự (escaping) hoặc làm sạch (sanitization) nào. Một kẻ tấn công có thể ảnh hưởng đến tên tệp mẫu hoặc các đối số CLI có thể chèn mã JavaScript tùy ý, mã này sẽ thực thi khi gói được tạo ra được tải trong Node.js hoặc trình duyệt. Phiên bản 4.7.9 đã khắc phục sự cố này. Một số giải pháp tạm thời (workarounds) có sẵn. Đầu tiên, hãy xác thực tất cả các đầu vào CLI trước khi gọi trình biên dịch trước. Từ chối các tên tệp và giá trị tùy chọn chứa các ký tự có ý nghĩa trong quá trình thoát ký tự của chuỗi JavaScript (`"`, `'`, `;`, v.v.). Thứ hai, sử dụng một chuỗi tên không gian (namespace) cố định, đáng tin cậy được truyền qua tệp cấu hình thay vì các đối số dòng lệnh trong các quy trình tự động hóa. Thứ ba, chạy trình biên dịch trước trong một môi trường sandboxed (container không có quyền ghi vào các đường dẫn nhạy cảm) để hạn chế tác động của việc khai thác thành công. Thứ tư, kiểm toán (audit) các tên tệp mẫu trong bất kỳ kho lưu trữ hoặc gói nào được sử dụng bởi một quy trình xây dựng tự động.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.