CVE-2026-50557
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 11 - wyżej niż 11% wszystkich znanych CVE
Streszczenie
W Angularze wykryto podatność w pakietach @angular/compiler i @angular/core, która pozwala na obejście mechanizmów sanityzacji elementów i atrybutów poprzez użycie przestrzeni nazw. Atakujący może wstrzyknąć złośliwy szablon z niestandardową przestrzenią nazw, co prowadzi do wykonania skryptów po stronie klienta (XSS).
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataku XSS, który może doprowadzić do kradzieży danych sesji, przejęcia kont użytkowników lub modyfikacji treści strony bez wiedzy administratora.
Rekomendacja
Należy niezwłocznie zaktualizować Angular do wersji 22.0.0-rc.2, 21.2.15, 20.3.22 lub 19.2.22 w zależności od używanej gałęzi. Po aktualizacji przetestować aplikacje pod kątem poprawnego działania mechanizmów sanityzacji.
Inne podatności w Angular
Zobacz wszystkie- CVE-2026-88056Krytyczne
Angular w wersjach przed 20.3.30, 21.2.22 i 22.1.4 ma podatność w renderowaniu po stronie serwera (SSR) w @angular/platform-server. Funkcje resolveUrl i parseUrl wywołują String.prototype.trim(), co usuwa wiodące białe znaki Unicode po sprawdzeniu same-origin, przekształcając ścieżkę względną w kontrolowany przez atakującego URL protokołu względnego, prowadząc do SSRF i ujawnienia danych uwierzytelniających.
- CVE-2026-101896Wysokie
W Angular przed wersjami 20.3.32, 21.2.24 i 22.2.0 parser URL @angular/router przechowuje numeryczne nazwy parametrów macierzy i numeryczne nazwy outletów jako właściwości na początkowo pustych obiektach JavaScript podczas renderowania po stronie serwera w Node.js. V8 może interpretować te klucze pochodzące z URL jako indeksy tablicy i alokować gęste magazyny o rozmiarze odpowiadającym wysokim wartościom numerycznym, więc powtarzające się małe segmenty ścieżki powodują nieproporcjonalne zużycie sterty na segment. Nieuwierzytelniony atakujący może wysyłać nakładające się żądania zawierające powtarzające się numeryczne parametry macierzy, gdy SSR jest włączone, router bezpośrednio parsuje URL żądania, a proxy nadrzędne zezwalają na średniki i wiele segmentów ścieżki, ostatecznie wyczerpując stertę old-space Node.js i kończąc proces roboczy SSR. Czysto klienckie aplikacje Angular nie są dotknięte.
- CVE-2026-101895Wysokie
Angular to platforma do budowania aplikacji webowych; w wersjach przed 20.3.31, 21.2.23 i 22.1.6 parser emulacji DOM w @angular/platform-server może wejść w nieskończoną pętlę synchroniczną, gdy renderowanie po stronie serwera przetwarza kontrolowany przez atakującego HTML zawierający niekompletny DOCTYPE kończący się białym znakiem na końcu danych. W Domino lib/HTMLParser.js stan after_doctype_name_state emituje tokeny doctype i EOF bez przesuwania nextchar, przez co skaner wielokrotnie przetwarza ten sam znacznik EOF. Zdalny nieuwierzytelniony atakujący może wykorzystać ten warunek przez ścieżki parsowania HTML po stronie serwera, takie jak wiązanie innerHTML, aby zużyć pełne CPU workera SSR Node.js, zagłodzić pętlę zdarzeń i zatrzymać równoczesne oraz kolejne żądania. Problem naprawiono w wersjach 20.3.31, 21.2.23 i 22.1.6.
- CVE-2026-88060Średnie
Angular w wersjach przed 20.3.30, 21.2.22 i 22.1.4 ma podatność w renderowaniu po stronie serwera (SSR) w @angular/platform-server. Serializacja niezaufanych danych wewnątrz elementów fallback raw-content (noscript, iframe, noembed, noframes) nie escapuje pasujących tagów zamykających, co umożliwia wykonanie dowolnego kodu JavaScript.
- CVE-2026-88059Średnie
W Angularze w wersjach przed 20.3.28, 21.2.20 i 22.1.1 mechanizm @angular/common HttpTransferCache może zapisać w pamięci podręcznej uwierzytelnioną odpowiedź, gdy renderowanie po stronie serwera (SSR) i hydratacja używają hierarchicznego HttpClient skonfigurowanego z withRequestsMadeViaParent. Podrzędny TransferCache ocenia początkowo anonimowe żądanie przed delegacją, a następnie nadrzędny łańcuch withInterceptors dodaje nagłówek Authorization, cookie lub token API; mimo że nadrzędny cache pomija uwierzytelnione żądanie, podrzędny nadal zapisuje prywatną odpowiedź w TransferState serializowaną jako JSON w skrypcie ng-state. Późniejszy nieuwierzytelniony lub nieuprawniony odwiedzający może otrzymać buforowany HTML zawierający dane wrażliwe wcześniejszego uwierzytelnionego użytkownika.
- CVE-2026-88058Średnie
Angular w wersjach przed 20.3.30, 21.2.22 i 22.1.4 ma podatność w renderowaniu po stronie serwera (SSR) w @angular/platform-server. Serializacja węzłów ProcessingInstruction wewnątrz elementów fallback raw-content nie escapuje pasujących tagów zamykających, co pozwala na przedwczesne zamknięcie kontenera i wykonanie dowolnego kodu JavaScript.
- CVE-2026-88057Średnie
W Angularze w wersjach przed 20.3.28, 21.2.20 i 22.1.0 kompilator i środowisko uruchomieniowe w @angular/core i @angular/compiler mogły pominąć lub wybrać nieprawidłowy sanitizer dla wrażliwych na bezpieczeństwo powiązań host bindings dyrektyw, ponieważ SecurityContext był wyznaczany na podstawie selektora deklarującej dyrektywy lub komponentu, a nie konkretnego elementu hosta. Niezgodność jest osiągalna przez kompozycję hostDirectives, dziedziczone deklaracje HostBinding, createComponent z niestandardowym hostElement lub dynamicznymi dyrektywami, elementy przestrzeni nazw SVG/MathML oraz selektory neutralne dla tagów, takie jak :not(...). Kontrolowane przez atakującego wartości href, src, action, xlink:href lub data mogą w ten sposób trafić do atrybutów DOM bez wbudowanego sanitizera Angulara i wykonać dowolny JavaScript w kontekście przeglądarki użytkownika.
- CVE-2026-69151Średnie
Angular przed wersjami 20.3.27, 21.2.19 i 22.0.1 zawiera podatność w potoku i18n kompilatora Angular, która pozwala na użycie atrybutów obsługi zdarzeń i18n-onerror i innych i18n-on. Umożliwia to plikowi tłumaczenia o niższym zaufaniu zastąpienie statycznego handlera wykonywalnym kodem JavaScript.
- CVE-2026-69149Średnie
Angular przed wersjami 20.3.27, 21.2.19 i 22.0.7 zawiera podatność na Cross-Site Scripting (XSS) w zależności DOM emulacji @angular/platform-server (domino) podczas serializacji zawartości elementów zastępczych surowej zawartości (<iframe>, <noembed>, <noframes> i <noscript>).
- CVE-2026-68945Średnie
Angular przed wersjami 20.3.27, 21.2.19 i 22.0.2 zawiera podatność w HttpTransferCache, która łączy przecinkami powtarzające się parametry żądania. Pozwala to semantycznie różnym żądaniom HttpClient używać tego samego klucza pamięci podręcznej transferu i ponownie wykorzystać nieprawidłową odpowiedź backendu.
Oryginalny opis (angielski, źródło NVD)
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22 and 19.2.22, an issue in the @angular/compiler and @angular/core packages allows bypassing element and attribute sanitization/validation through specific namespace workarounds. Specifically, namespaced script elements (e.g., <svg:script> or <:svg:script>) were not properly identified as script elements by the Angular template preparser, allowing them to pass through template compilation without being stripped. Furthermore, security context schema mappings for element attributes did not consistently handle attributes within namespaced elements (like SVG and MathML), opening up gaps where malicious namespaced attributes could bypass runtime and compile-time sanitizers. Combined, these flaws enable an attacker who can inject or supply a template/tag structure with custom namespaces to bypass Angular's script-stripping logic and attribute sanitizers, leading to client-side Cross-Site Scripting (XSS). This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22 and 19.2.22.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

