CVE-2026-88059
ŚrednieCVSS 4.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Dane uwierzytelnionego użytkownika mogą wyciec do innych użytkowników poprzez współdzielony buforowany HTML, co prowadzi do naruszenia poufności. Ryzyko występuje, gdy odpowiedzi SSR są współdzielone przez CDN, reverse proxy lub cache aplikacji.
Rekomendacja
Zaktualizuj Angular do wersji 20.3.28, 21.2.20 lub 22.1.1. Jako obejście dołączaj poświadczenia na poziomie podrzędnym, filtruj wrażliwe endpointy przez withHttpTransferCacheOptions lub oznaczaj personalizowany HTML jako private/no-store.
Inne podatności w Angular
Zobacz wszystkie- CVE-2026-88060Wysokie
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-88058Wysokie
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-88056Wysokie
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-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.
- CVE-2026-50556Średnie
W Angularze wykryto podatność na atak XSS w komponencie @angular/platform-server podczas renderowania treści w elemencie <noscript> przy użyciu SSR. Problem wynika z błędnego serializowania zawartości przez bibliotekę domino, która nie ucieka znacznika </noscript>, co pozwala na wstrzyknięcie złośliwego kodu JavaScript.
- CVE-2026-50555Średnie
W Angularze wykryto podatność na Cross-Site Scripting (XSS) w zależności DOM emulacji @angular/platform-server (domino) podczas serializacji treści elementów raw-text, takich jak <script>, <style> i <iframe>. Błąd w obliczeniach indeksów Unicode powoduje, że dynamiczny tekst zawierający znaki astralne (np. emotikony) przed znacznikiem zamykającym nie jest poprawnie escapowany, co umożliwia wstrzyknięcie kodu JavaScript. Luka została załatana w wersjach 22.0.0-rc.2, 21.2.16, 20.3.24 i 19.2.25.
- CVE-2026-54267Średnie
Podatność DOM Clobbering w Angularze umożliwia atakującemu podmianę kontenera stanu SSR (ng-state) poprzez wstrzyknięcie elementu HTML z tym samym identyfikatorem. Podczas hydracji klienta Angular odczytuje dane z fałszywego elementu, co może prowadzić do wykonania kodu lub kradzieży danych.
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 20.3.28, 21.2.20, and 22.1.1, Angular's @angular/common HttpTransferCache can cache an authenticated response when Server-Side Rendering (SSR) and hydration use a hierarchical HttpClient configured with withRequestsMadeViaParent. The child TransferCache evaluates an initially anonymous request before delegation, then a parent withInterceptors chain adds an Authorization header, cookie, or API token; although the parent cache skips the authenticated request, the child still stores the private response in TransferState serialized as JSON in the ng-state script. Exploitation requires provideClientHydration, child provideHttpClient delegation through withRequestsMadeViaParent, parent-level credential injection, and an SSR HTML response shared across users by a CDN, reverse proxy, or application cache. A later unauthenticated or unauthorized visitor can receive the cached HTML containing the earlier authenticated user's sensitive response data. Applications can mitigate by attaching credentials at the child, filtering sensitive endpoints with withHttpTransferCacheOptions, disabling transfer caching for sensitive routes, or marking personalized HTML private or no-store. This issue is fixed in versions 20.3.28, 21.2.20, and 22.1.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

