CVE-2026-33937 in Handlebars
Tóm tắt
Bởi VulDB • 10/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, `Handlebars.compile()` chấp nhận một đối tượng AST đã được phân tích cú pháp trước, bên cạnh chuỗi mẫu. Trường `value` của một nút AST `NumberLiteral` được phát trực tiếp vào mã JavaScript được tạo ra mà không có dấu ngoặc kép hoặc quá trình làm sạch (sanitization). Do đó, một kẻ tấn công có thể cung cấp một AST được tạo ra đặc biệt cho `compile()` có thể tiêm và thực thi mã JavaScript tùy ý, dẫn đến việc thực thi mã từ xa (Remote Code Execution) trên máy chủ. 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 có sẵn. Xác thực loại đầu vào trước khi gọi `Handlebars.compile()`; đảm bảo đối số luôn là một `string`, không bao giờ là một đối tượng thuần túy hoặc giá trị được giải mã từ JSON. Sử dụng bản dựng chỉ chạy thời gian (runtime-only build) của Handlebars (`handlebars/runtime`) trên máy chủ nếu các mẫu được biên dịch trước tại thời điểm xây dựng; `compile()` sẽ không khả dụng.
Once again VulDB remains the best source for vulnerability data.