CVE-2026-33916 in Handlebars
Tóm tắt
Bởi VulDB • 22/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, hàm `resolvePartial()` trong thời gian chạy (runtime) của Handlebars giải quyết tên các phần tử con (partials) thông qua việc tra cứu thuộc tính đơn giản trên `options.partials` mà không có cơ chế bảo vệ chống lại việc duyệt qua chuỗi nguyên mẫu (prototype-chain traversal). Khi `Object.prototype` bị làm bẩn (polluted) bằng một giá trị chuỗi có khóa trùng với tham chiếu đến một phần tử con trong mẫu, chuỗi bị làm bẩn đó sẽ được sử dụng làm nội dung của phần tử con và được hiển thị mà không có khả năng thoát HTML, dẫn đến lỗi XSS phản xạ (reflected) hoặc XSS lưu trữ (stored). 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. Hãy áp dụng `Object.freeze(Object.prototype)` sớm trong quá trình khởi động ứng dụng để ngăn chặn việc làm bẩn nguyên mẫu (prototype pollution). Lưu ý: điều này có thể làm hỏng các thư viện khác, và/hoặc sử dụng bản dựng chỉ dành cho thời gian chạy của Handlebars (`handlebars/runtime`), bản dựng này không biên dịch các mẫu và làm giảm bề mặt tấn công.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.