CVE-2026-33943
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 51 - wyżej niż 51% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Happy DOM (wersje 15.10.0 do 20.8.7) umożliwia zdalne wykonanie kodu (RCE) poprzez wstrzyknięcie złośliwych wyrażeń JavaScript w deklaracjach `export { }` w modułach ES. Kompilator `ECMAScriptModuleCompiler` bezpośrednio interpoluje niesprawdzone dane do generowanego kodu, a filtr cytatów nie usuwa znaków backtick, co pozwala na ominięcie zabezpieczeń za pomocą literałów szablonowych.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolny kod JavaScript w kontekście aplikacji używającej podatnej wersji Happy DOM, co może prowadzić do przejęcia kontroli nad serwerem, kradzieży danych lub dalszego rozprzestrzeniania się ataku w infrastrukturze.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Happy DOM do wersji 20.8.8 lub nowszej, która usuwa podatność. Jeśli aktualizacja nie jest możliwa, należy tymczasowo wyłączyć przetwarzanie modułów ES lub zastosować reguły WAF blokujące podejrzane deklaracje `export { }`.
Inne podatności w Happy DOM
Zobacz wszystkie- CVE-2025-62410Krytyczne
W wersjach przed 20.0.2 stwierdzono, że --disallow-code-generation-from-strings nie jest wystarczające do izolacji niezaufanego kodu JavaScript w happy-dom. Niezaufany skrypt i reszta aplikacji nadal działają w tym samym Isolate/procesie, więc atakujący mogą wdrażać ładunki zanieczyszczenia prototypu, aby przejąć ważne referencje, takie jak "process", lub przejąć przepływ sterowania poprzez manipulację sprawdzeniami niezdefiniowanych właściwości. Luka wynika z niekompletnej poprawki dla CVE-2025-61927. Podatność została naprawiona w wersji 20.0.2.
- CVE-2026-118661Średnie
W Happy DOM przed wersją 20.14.6 komponent CookieContainer nieprawidłowo waliduje i dopasowuje atrybuty Domain plików cookie. Może akceptować Domain niezwiązany z originem ustawiającym cookie, w tym publiczny sufiks, oraz traktować niepowiązaną nazwę hosta dzielącą sufiks jako dopasowanie, ponieważ cookieMatchesURL nie wymusza granicy etykiety DNS.
- CVE-2026-118660Wysokie
W Happy DOM przed wersją 21.0.0 podczas przetwarzania niezaufanego HTML na serwerze domyślnie ładowane są adresy URL iframe src oraz link rel="stylesheet" href, ponieważ opcje disableIframePageLoading i disableCSSFileLoading mają domyślnie wartość false. Atakujący kontrolujący przetwarzany HTML może wywołać żądania serwerowe do dowolnych wewnętrznych lub chmurowych punktów końcowych.
- CVE-2026-115895Wysokie
Happy DOM od wersji 17.0.0 do 21.0.4 w ECMAScriptModuleCompiler.ts przyjmuje alias importu ESM bez walidacji, że jest poprawnym identyfikatorem wiązania JS; przy włączonym enableJavaScriptEvaluation złośliwy HTML lub źródło modułu może spowodować wykonanie wygenerowanego JavaScriptu w procesie hosta Node.js.
- CVE-2026-34226Wysokie
W bibliotece Happy DOM przed wersją 20.8.9 występuje podatność polegająca na nieprawidłowym dołączaniu ciasteczek podczas użycia fetch() z opcją credentials: 'include'. Zamiast ciasteczek z docelowego adresu URL, dołączane są ciasteczka z bieżącej strony (window.location), co może prowadzić do wycieku ciasteczek z domeny A do domeny B.
- CVE-2025-61927Wysokie
Happy DOM w wersji 19 i niższych zawiera podatność umożliwiającą zdalne wykonanie kodu (RCE). Kontekst VM Node.js nie jest izolowany, co pozwala niebezpiecznemu kodowi JavaScript na ucieczkę z VM i dostęp do funkcji procesu. Wersja 20.0.0 naprawia problem, wyłączając domyślnie ocenę JavaScript.
Oryginalny opis (angielski, źródło NVD)
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. In versions 15.10.0 through 20.8.7, a code injection vulnerability in `ECMAScriptModuleCompiler` allows an attacker to achieve Remote Code Execution (RCE) by injecting arbitrary JavaScript expressions inside `export { }` declarations in ES module scripts processed by happy-dom. The compiler directly interpolates unsanitized content into generated code as an executable expression, and the quote filter does not strip backticks, allowing template literal-based payloads to bypass sanitization. Version 20.8.8 fixes the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

