Gemiddeld · 5.3 React CVE-2026-88058 GHSA-j3r3-mxqp-r2p4 GHSA-v3p8-whq6-r5jg CVE-2026-88060
Angular verhelpt vijf kwetsbaarheden in SSR, sanitization en HTTP-caching
Angular heeft vijf kwetsbaarheden verholpen die server-side rendering, directive-sanitization en HTTP transfer caching raken, waaronder twee ernstige XSS-problemen in @angular/platform-server en een SSRF-fout die server-side credentials kon lekken.
- NVD (NIST) database 1w geleden · bekijk ↗
- GitHub Advisory Database database 1w geleden · bekijk ↗
- GitHub Advisory Database database 1mnd geleden · bekijk ↗
- NVD (NIST) database 1w geleden · bekijk ↗
- CVE.org database 1mnd geleden · bekijk ↗
- GitHub Advisory Database database 1mnd geleden · bekijk ↗
- NVD (NIST) database 1w geleden · bekijk ↗
- GitHub Advisory Database database 1mnd geleden · bekijk ↗
- NVD (NIST) database 1w geleden · bekijk ↗
- GitHub Advisory Database database 1mnd geleden · bekijk ↗
- NVD (NIST) database 1w geleden · bekijk ↗
AI-samenvatting
Angular heeft vijf afzonderlijke kwetsbaarheden bekendgemaakt en verholpen die van invloed zijn op de server-side rendering (SSR)-pijplijn, directive-gebaseerde sanitization en HTTP transfer caching. De problemen betreffen vier pakketten: @angular/platform-server, @angular/common, @angular/core en @angular/compiler. Drie van de vijf betreffen cross-site scripting (XSS) in SSR-output, één is een server-side request forgery (SSRF)-probleem dat credentials kan lekken, en één is een informatielek gerelateerd aan gecachte HTTP-responses. Alle vijf zijn verholpen door het Angular-team in bijbehorende patch-releases binnen de 20.x-, 21.x- en 22.x-lijnen.
Wat is er gebeurd
De beheerders van Angular hebben vijf advisories gepubliceerd die betrekking hebben op server-side rendering en gerelateerde HTTP-afhandeling in @angular/platform-server, @angular/common, @angular/core en @angular/compiler. CVE-2026-88058 en CVE-2026-88060 beschrijven beide serialisatiefouten in de SSR van @angular/platform-server, waarbij de op Domino gebaseerde serializer inhoud binnen zogeheten 'fallback raw-content elements' zoals noscript, iframe, noembed en noframes niet correct escaped. Bij CVE-2026-88058 worden ProcessingInstruction DOM-nodes geserialiseerd zonder dat kleiner-dan-tekens worden geëscaped die overeenkomen met de sluitende tag van een voorouderelement, waardoor de container voortijdig kan worden afgesloten. Bij CVE-2026-88060 stopt de doorloop van fallbackRawContentTags in de serializer bij de DocumentFragment-grenzen die worden gebruikt door <template>-inhoud, waardoor sluitende tags binnen template-inhoud (via xmp, style, script, comments of tekstnodes) eveneens niet worden geëscaped. CVE-2026-88056 is een SSRF-probleem: URL-resolutiefuncties in @angular/platform-server (resolveUrl en parseUrl) roepen String.prototype.trim() aan, wat bepaalde Unicode-witruimtetekens verwijdert nadat een same-origin-controle al is doorlopen, waardoor een gevalideerd relatief pad verandert in een door een aanvaller controleerbare, protocol-relatieve URL die vervolgens via HttpClient kan worden aangeroepen. CVE-2026-88057 is een omzeiling van sanitization in @angular/core en @angular/compiler, waarbij de SecurityContext voor host-bindings wordt afgeleid van de declarerende directive of componentselector in plaats van het daadwerkelijke host-element, wat ertoe kan leiden dat de ingebouwde sanitizer wordt overgeslagen of verkeerd wordt toegepast op beveiligingsgevoelige attributen zoals href, src, action of xlink:href. CVE-2026-88059 is een informatielek in de HttpTransferCache van @angular/common, waarbij een hiërarchische HttpClient-opzet met withRequestsMadeViaParent ertoe kan leiden dat een geauthenticeerde response wordt gecachet en later, via gedeelde SSR-HTML, aan een andere, niet-geauthenticeerde of onbevoegde bezoeker wordt getoond.
Technische oorzaken
De twee SSR-XSS-problemen (CVE-2026-88058, CVE-2026-88060) komen voort uit onvolledige escaping-logica in de serializer die Angular's SSR gebruikt voor fallback raw-content HTML-elementen. Volgens de HTML5 RAWTEXT-parseerregels behandelt een browser elke overeenkomende sluitende tag binnen deze elementen als het daadwerkelijke einde van dat element, ongeacht hoe die tag daar terecht is gekomen; als de serializer zulke reeksen niet neutraliseert, wordt de resterende inhoud opnieuw geïnterpreteerd als actieve, uitvoerbare markup. Bij CVE-2026-88058 is dit alleen bereikbaar via code die inject(DOCUMENT).createProcessingInstruction gebruikt met door een aanvaller controleerbare data, of via Renderer2-gebaseerde DOM-invoeging in een van deze containers — niet via standaard Angular-templates. Bij CVE-2026-88060 hangt de blootstelling af van hoe de inhoud is opgebouwd: standaard interpolatie met comments of tekstnodes is bereikbaar zonder versoepelde schema's, letterlijke xmp- of style-inhoud vereist CUSTOM_ELEMENTS_SCHEMA of NO_ERRORS_SCHEMA, en Renderer2-gebaseerde DOM-constructie is onvoorwaardelijk kwetsbaar. Het SSRF-probleem (CVE-2026-88056) ontstaat doordat trim() bepaalde Unicode-witruimtetekens (zoals U+00A0 of U+FEFF) alleen verwijdert nadat de betreffende string al een same-origin-validatie heeft doorstaan, waardoor een ogenschijnlijk veilig relatief pad na het trimmen naar een ander, door een aanvaller gecontroleerd domein kan verwijzen. Dit is met name relevant wanneer relativeUrlsTransformerInterceptorFn het verzoek doorstuurt en de applicatie gevoelige credentials zoals Authorization-headers meestuurt. De omzeiling van sanitization (CVE-2026-88057) treedt op omdat Angular de SecurityContext die bepaalt welke sanitizer wordt gebruikt, afleidt van de declarerende directive of componentselector in plaats van het concrete DOM-element waarop de binding uiteindelijk terechtkomt; deze mismatch kan worden veroorzaakt via hostDirectives-compositie, overgeërfde HostBinding-declaraties, createComponent met een aangepast host-element, SVG/MathML-namespace-elementen, of tag-neutrale selectors zoals :not(...). Tot slot ontstaat het HttpTransferCache-probleem (CVE-2026-88059) doordat een child-HttpClient een verzoek als anoniem beoordeelt en in TransferState cachet vóórdat een bovenliggende interceptor-keten (geconfigureerd via withRequestsMadeViaParent) authenticatieheaders toevoegt; de cache op het hogere niveau slaat het geauthenticeerde verzoek terecht over, maar de child-cache heeft de private response dan al opgeslagen, die vervolgens in de ng-state-scripttag van de pagina wordt geserialiseerd.
Waarom dit belangrijk is
De twee SSR-XSS-kwetsbaarheden en de omzeiling van sanitization kunnen leiden tot het uitvoeren van willekeurige JavaScript in de browser van een slachtoffer, wat kan resulteren in sessiekaping, diefstal van inloggegevens of verdere compromittering van de betrokken webapplicatie. De SSRF-kwetsbaarheid is met name zorgwekkend voor applicaties die server-side credentials (zoals Authorization-headers) toevoegen aan uitgaande verzoeken ná URL-validatie, omdat die credentials daardoor naar een door een aanvaller bepaalde bestemming kunnen worden gestuurd. Het HttpTransferCache-probleem kan ertoe leiden dat de geauthenticeerde responsdata van de ene gebruiker zichtbaar wordt voor een latere, niet-gerelateerde bezoeker wanneer SSR-HTML wordt gecachet door een CDN, reverse proxy of applicatieniveau-cache; dit is een informatielek tussen gebruikers onderling, geen codeuitvoering.
Wie wordt getroffen
Organisaties die gebruikmaken van Angular's server-side rendering via @angular/platform-server worden getroffen door de twee SSR-XSS-problemen en het SSRF-probleem, al verschilt de bereikbaarheid: de ProcessingInstruction-XSS (CVE-2026-88058) vereist applicatie- of bibliotheekcode die expliciet ProcessingInstruction-nodes aanmaakt of Renderer2 gebruikt om DOM-inhoud in fallback raw-content elementen in te voegen; de template-content-XSS (CVE-2026-88060) is onder verschillende voorwaarden bereikbaar, afhankelijk van het gebruik van versoepelde schema's of Renderer2; het SSRF-probleem (CVE-2026-88056) treft applicaties die URL's valideren met WHATWG-parsing en vervolgens verzoeken via HttpClient routeren met interceptors die credentials toevoegen. De omzeiling van sanitization (CVE-2026-88057) treft applicaties die @angular/core en @angular/compiler gebruiken met hostDirectives-compositie, overgeërfde HostBinding-declaraties, dynamische componentcreatie met aangepaste host-elementen, of SVG/MathML-inhoud. Het HttpTransferCache-probleem (CVE-2026-88059) treft applicaties die provideClientHydration gebruiken samen met een hiërarchische HttpClient-configuratie via withRequestsMadeViaParent, waarbij een bovenliggende interceptor credentials toevoegt en SSR-HTML-responses tussen gebruikers worden gedeeld via een cachelaag.
Getroffen versies
Voor @angular/platform-server (CVE-2026-88058, CVE-2026-88060, CVE-2026-88056): versies tot en met 19.2.25 zijn getroffen, evenals versies vanaf 20.0.0 vóór 20.3.30, vanaf 21.0.0 vóór 21.2.22, en vanaf 22.0.0 vóór 22.1.4. Voor @angular/core en @angular/compiler (CVE-2026-88057): versies tot en met 19.2.25 zijn getroffen, evenals versies vanaf 20.0.0 vóór 20.3.28, vanaf 21.0.0 vóór 21.2.20, en vanaf 22.0.0 vóór 22.1.0. Voor @angular/common (CVE-2026-88059): versies tot en met 19.2.25 zijn getroffen, evenals versies vanaf 20.0.0 vóór 20.3.28, vanaf 21.0.0 vóór 21.2.20, en vanaf 22.0.0 vóór 22.1.1.
Fixes en mitigatie
Angular heeft voor alle vijf de problemen fixes uitgebracht. Voor @angular/platform-server zijn de fixes voor CVE-2026-88058, CVE-2026-88060 en CVE-2026-88056 opgenomen in de versies 20.3.30, 21.2.22 en 22.1.4. Voor @angular/core en @angular/compiler is de fix voor CVE-2026-88057 opgenomen in de versies 20.3.28, 21.2.20 en 22.1.0. Voor @angular/common is de fix voor CVE-2026-88059 opgenomen in de versies 20.3.28, 21.2.20 en 22.1.1. Voor organisaties die niet direct kunnen upgraden, vermeldt de advisory voor CVE-2026-88057 dat applicaties kunnen mitigeren door expliciet DomSanitizer.sanitize met SecurityContext.URL aan te roepen vóórdat onvertrouwde waarden worden toegewezen, of door dergelijke invoer te beperken tot gevalideerde HTTP- en HTTPS-URL-schema's. Voor CVE-2026-88059 kunnen applicaties mitigeren door credentials op het child-HttpClient-niveau toe te voegen in plaats van op het parent-niveau, gevoelige endpoints te filteren met withHttpTransferCacheOptions, transfer caching voor gevoelige routes uit te schakelen, of gepersonaliseerde HTML-responses te markeren als private of no-store. Voor CVE-2026-88058, CVE-2026-88060 en CVE-2026-88056 worden in het feitenpakket geen specifieke tussentijdse mitigaties buiten het upgraden beschreven.
Aanbevolen actie
Controleer welke van de vier getroffen pakketten (@angular/platform-server, @angular/common, @angular/core, @angular/compiler) in uw applicatie worden gebruikt en upgrade naar de bijbehorende gefixte versie: 20.3.30 / 21.2.22 / 22.1.4 voor @angular/platform-server, 20.3.28 / 21.2.20 / 22.1.0 voor @angular/core en @angular/compiler, en 20.3.28 / 21.2.20 / 22.1.1 voor @angular/common. Als direct upgraden niet mogelijk is, pas dan de hierboven beschreven tussentijdse mitigaties toe voor de omzeiling van sanitization en het HttpTransferCache-probleem. Controleer applicatie- en bibliotheekcode op gebruik van inject(DOCUMENT).createProcessingInstruction, Renderer2-gebaseerde DOM-invoeging in noscript/iframe/noembed/noframes-elementen, hiërarchische HttpClient-configuraties met withRequestsMadeViaParent, en patronen met aangepaste host-elementen of dynamische directives, aangezien dit de specifieke codepaden zijn die deze kwetsbaarheden bereikbaar maken.
PatchBriefing-score
5.3 / 10 · Gemiddeld
Officiële CVSS: 8.6
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Waarom deze score
Drie van de vijf kwetsbaarheden (CVE-2026-88058, CVE-2026-88060, CVE-2026-88056) hebben een CVSS-basisscore van 8.6, gedreven door een hoge impact op vertrouwelijkheid en integriteit in combinatie met een netwerkgebaseerde, laag-complexe aanvalsvector zonder benodigde rechten, al is wel gebruikersinteractie vereist. Dit vertaalt zich naar een PatchBriefing-score van 5.3, wat weerspiegelt dat er een fix beschikbaar is en er geen aanwijzingen zijn voor bekende of publiek beschikbare exploitatie, waardoor de totaalscore gematigd blijft ondanks de hoge CVSS-basisscore. CVE-2026-88057 heeft een lagere CVSS-basisscore van 5.3, wat de beperktere impact op vertrouwelijkheid/integriteit weerspiegelt, resulterend in een PatchBriefing-score van 3.5. CVE-2026-88059 heeft de laagste CVSS-basisscore, 4.0, passend bij het profiel van een informatielek met lage vertrouwelijkheidsimpact en hoge aanvalscomplexiteit, resulterend in een PatchBriefing-score van 3.0. Geen van de vijf kwetsbaarheden staat vermeld als actief uitgebuit, heeft publiek beschikbare exploitcode, of heeft in dit pakket een toegewezen EPSS-exploitatiekans op advisory-niveau.
Getroffen versies
- @angular/platform-server <= 19.2.25
- kwetsbaar
- ≥ 22.1.4
- gepatcht
- ≥ 21.2.22
- gepatcht
- ≥ 20.3.30
- gepatcht
- @angular/platform-server <= 19.2.25
- kwetsbaar
- ≥ 22.1.4
- gepatcht
- ≥ 21.2.22
- gepatcht
- ≥ 20.3.30
- gepatcht
- @angular/platform-server <= 19.2.25
- kwetsbaar
- ≥ 22.1.4
- gepatcht
- ≥ 21.2.22
- gepatcht
- ≥ 20.3.30
- gepatcht
- @angular/common <= 19.2.25
- kwetsbaar
- ≥ 22.1.1
- gepatcht
- ≥ 21.2.20
- gepatcht
- ≥ 20.3.28
- gepatcht
- @angular/core <= 19.2.25
- kwetsbaar
- ≥ 22.1.0
- gepatcht
- ≥ 21.2.20
- gepatcht
- ≥ 20.3.28
- gepatcht
- @angular/compiler <= 19.2.25
- kwetsbaar
- ≥ 22.1.0
- gepatcht
- ≥ 21.2.20
- gepatcht
- ≥ 20.3.28
- gepatcht
Gemelde oplossingen
Angular heeft voor alle vijf de problemen fixes uitgebracht. Voor @angular/platform-server zijn de fixes voor CVE-2026-88058, CVE-2026-88060 en CVE-2026-88056 opgenomen in de versies 20.3.30, 21.2.22 en 22.1.4. Voor @angular/core en @angular/compiler is de fix voor CVE-2026-88057 opgenomen in de versies 20.3.28, 21.2.20 en 22.1.0. Voor @angular/common is de fix voor CVE-2026-88059 opgenomen in de versies 20.3.28, 21.2.20 en 22.1.1. Voor organisaties die niet direct kunnen upgraden, vermeldt de advisory voor CVE-2026-88057 dat applicaties kunnen mitigeren door expliciet DomSanitizer.sanitize met SecurityContext.URL aan te roepen vóórdat onvertrouwde waarden worden toegewezen, of door dergelijke invoer te beperken tot gevalideerde HTTP- en HTTPS-URL-schema's. Voor CVE-2026-88059 kunnen applicaties mitigeren door credentials op het child-HttpClient-niveau toe te voegen in plaats van op het parent-niveau, gevoelige endpoints te filteren met withHttpTransferCacheOptions, transfer caching voor gevoelige routes uit te schakelen, of gepersonaliseerde HTML-responses te markeren als private of no-store. Voor CVE-2026-88058, CVE-2026-88060 en CVE-2026-88056 worden in het feitenpakket geen specifieke tussentijdse mitigaties buiten het upgraden beschreven.
Hoe dit rapport is gemaakt
11 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.
-
NVD (NIST) database
-
GitHub Advisory Database database
-
GitHub Advisory Database database
-
NVD (NIST) database
-
CVE.org database
-
GitHub Advisory Database database
Revisiegeschiedenis
- Gepubliceerd
- Gegenereerd
Gerelateerd
Relevante veranderingen voor de stacks die je volgt.
Kies je stacks, onderwerpen en eventueel WordPress-plugins. Om 07:00 CEST worden passende meldingen en releases uit de rapportageperiode in één e-mail gegroepeerd.
✓ Kies stacks en onderwerpen✓ Pas voorkeuren altijd aan✓ Eén gebundelde e-mail