CVE-2026-50556 json
Angular: Missing `<noscript>` Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSR
published 2026-06-15 4 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-38291 , GHSA-gxx4-3xcv-f8qx
- cvss
- 8.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 35%
- public exploits
- 0
- none known
Summary
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.16, 20.3.24, and 19.2.25, a Cross-Site Scripting (XSS) vulnerability exists in @angular/platform-server's DOM emulation dependency (domino) when serializing the content of <noscript> elements. When rendering dynamic text content inside a <noscript> element via template bindings (such as {{ value }} or [textContent]), the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), domino is configured with scripting enabled, meaning <noscript> is treated as a raw-text element. However, domino's serializer completely omitted <noscript> from the list of raw-text elements requiring closing-tag escaping during DOM serialization. As a result, any occurrence of </noscript> in the bound dynamic text was never escaped under any circumstances. The unescaped closing tag was serialized directly into the output HTML (e.g. <noscript></noscript><script>alert(1)</script></noscript>). When parsed by a browser, it closes the <noscript> block early, allowing the injected <script> block to execute in the user's browser context, causing same-origin Cross-Site Scripting (XSS). This vulnerability is fixed in 22.0.0-rc.2, 21.2.16, 20.3.24, and 19.2.25.
Patch / fix
- npm @angular/platform-server 19.2.25, 20.3.24, 21.2.16, 22.0.0-rc.2
- angular angular 19.2.25, 20.3.24, 21.2.16, 22.0.0-rc.2
- github.com/angular/domino#29 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-50556 updated cvss 8.1
@angular/platform-server: domino: Angular Platform Server: Cross-Site Scripting via unescaped `</noscript>` tags in dynamic content
-
Red Hat Enterprise Linux 8 dotnet5.0-build-reference-packagesnot affected: vulnerable code not present
-
Red Hat Fuse 7 platform-servernot affected: vulnerable code not in execute path
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 4 mo ago
Exploit prediction
0.41% chance of exploitation in the next 30 days, higher than 35% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 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 |
| CISA ADP | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N |
| CNA | 4.0 | 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 |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| CNA | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @angular/platform-server | >=22.0.0-next.0, <22.0.0-rc.2 >=21.0.0-next.0, <21.2.16 >=20.0.0-next.0, <20.3.24 >=19.0.0-next.0, <19.2.25 <=18.2.14 |
22.0.0-rc.2 21.2.16 20.3.24 19.2.25 |
Affected products
- angular angular
- Red Hat Red Hat Enterprise Linux 8
- Red Hat Red Hat Fuse 7
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/angular/domino/pull/29
web, issue-tracking, patch
-
github.com
/angular/angular/security/advisories/GHSA-gxx4-3xcv-f8qx
web, third-party-advisory
-
github.com
/angular/angular/issues/68903
web, issue-tracking
-
access.redhat.com
/security/cve/CVE-2026-50556
vdb-entry, third-party-advisory
-
bugzilla.redhat.com
/show_bug.cgi?id=2491459
issue-tracking, third-party-advisory
-
security.access.redhat.com
/data/csaf/v2/vex/2026/cve-2026-50556.json
third-party-advisory
-
github.com
/angular/angular
package
Sources
- CVE List CVE-2026-50556
- GitHub Advisory GHSA-gxx4-3xcv-f8qx
- NVD CVE-2026-50556
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.