Katalog CVE

CVE-2026-33916

ŚrednieCVSS 4.7
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.28%

Percentyl 20 - wyżej niż 20% wszystkich znanych CVE

Streszczenie

Handlebars w wersjach 4.0.0 do 4.7.8 zawiera błąd w funkcji resolvePartial(), która rozwiązuje nazwy partiali poprzez zwykłe wyszukiwanie właściwości w options.partials bez ochrony przed przechodzeniem po łańcuchu prototypów. Gdy Object.prototype zostanie zanieczyszczony ciągiem znaków pasującym do referencji partiala, zanieczyszczony ciąg jest używany jako treść partiala i renderowany bez escapowania HTML, co prowadzi do XSS. Wersja 4.7.9 naprawia problem.

Ocena ryzyka

Atakujący może wykorzystać podatność do przeprowadzenia ataku XSS (reflected lub stored), potencjalnie kradnąc dane sesyjne lub wykonując działania w imieniu użytkownika. Wymaga to jednak wcześniejszego zanieczyszczenia prototypu, co może być trudniejsze do osiągnięcia.

Rekomendacja

Zaktualizuj Handlebars do wersji 4.7.9 lub nowszej. Jako obejście rozważ zamrożenie Object.prototype na początku działania aplikacji lub użycie wersji runtime-only (handlebars/runtime).

Inne podatności w Handlebars

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, `resolvePartial()` in the Handlebars runtime resolves partial names via a plain property lookup on `options.partials` without guarding against prototype-chain traversal. When `Object.prototype` has been polluted with a string value whose key matches a partial reference in a template, the polluted string is used as the partial body and rendered without HTML escaping, resulting in reflected or stored XSS. Version 4.7.9 fixes the issue. Some workarounds are available. Apply `Object.freeze(Object.prototype)` early in application startup to prevent prototype pollution. Note: this may break other libraries, and/or use the Handlebars runtime-only build (`handlebars/runtime`), which does not compile templates and reduces the attack surface.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS