Description
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular server-side rendering (SSR) in @angular/platform-server serializes untrusted input inside template content nested in fallback raw-content elements such as noscript, iframe, noembed, and noframes. The Domino serializer's fallbackRawContentTags traversal stopped at the DocumentFragment used by template.content, so matching closing tags in xmp, style, script, comments, or text nodes were not escaped. Standard interpolation with comments or text nodes is reachable without relaxed schemas; literal xmp or style requires CUSTOM_ELEMENTS_SCHEMA or NO_ERRORS_SCHEMA, while Renderer2 imperative DOM construction is unconditionally affected. When HTML5 RAWTEXT browser parsing encounters the unescaped closing tag, it exits the fallback container and interprets trailing markup as active DOM elements, enabling arbitrary JavaScript execution. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
Published: 2026-09-10
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

Angular server‑side rendering can serialize user‑supplied input inside template content that resides within fallback raw‑content elements such as noscript, iframe, noembed, and noframes. Prior to the release of Angular 20.3.30, 21.2.22, and 22.1.4, the serializer stops at the DocumentFragment used by template.content, leaving unescaped closing tags in xmp, style, script, comments, or text nodes. When a browser parses this unescaped HTML, it exits the raw container and interprets subsequent markup as active DOM elements, allowing arbitrary JavaScript to execute in the client context. This leads to a classic cross‑site scripting condition that grants an attacker the ability to run malicious scripts, compromising confidentiality, integrity, and potentially the availability of the application for affected users.

Affected Systems

The vulnerability affects Angular, the main open‑source web application framework. Systems using Angular versions earlier than 20.3.30, 21.2.22, or 22.1.4 and that employ server‑side rendering with @angular/platform-server are directly impacted. The affected product is the Angular framework and its DOM serialization libraries.

Risk and Exploitability

The CVSS score of 8.6 reflects a high‑severity risk due to the high impact of remote script execution. The EPSS score is not available, but the lack of a KEV listing indicates that there is no current public exploitation data. The most likely attack vector involves an attacker supplying crafted untrusted input that is rendered by the SSR process, resulting in execution on any user who loads the page. The vulnerability can be exploited by sending a malicious payload to a vulnerable application endpoint that feeds data into the template content.

Generated by OpenCVE AI on September 10, 2026 at 22:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Angular to the fixed versions 20.3.30, 21.2.22, or 22.1.4 or newer, following the official release notes.
  • Sanitize or encode any user‑supplied values before passing them to server‑side rendering to prevent unescaped tags from being serialized.
  • Apply a strong Content Security Policy that restricts script execution and monitor application logs for unusual script activity.

Generated by OpenCVE AI on September 10, 2026 at 22:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v3p8-whq6-r5jg Angular: SSR XSS via Unescaped <template> Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
History

Fri, 11 Sep 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Angular
Angular angular
Vendors & Products Angular
Angular angular

Thu, 10 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 10 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Description Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular server-side rendering (SSR) in @angular/platform-server serializes untrusted input inside template content nested in fallback raw-content elements such as noscript, iframe, noembed, and noframes. The Domino serializer's fallbackRawContentTags traversal stopped at the DocumentFragment used by template.content, so matching closing tags in xmp, style, script, comments, or text nodes were not escaped. Standard interpolation with comments or text nodes is reachable without relaxed schemas; literal xmp or style requires CUSTOM_ELEMENTS_SCHEMA or NO_ERRORS_SCHEMA, while Renderer2 imperative DOM construction is unconditionally affected. When HTML5 RAWTEXT browser parsing encounters the unescaped closing tag, it exits the fallback container and interprets trailing markup as active DOM elements, enabling arbitrary JavaScript execution. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
Title Angular: SSR XSS via Unescaped <template> Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
Weaknesses CWE-116
CWE-79
References
Metrics cvssV4_0

{'score': 8.6, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-10T19:20:56.297Z

Reserved: 2026-09-09T21:22:45.434Z

Link: CVE-2026-88060

cve-icon Vulnrichment

Updated: 2026-09-10T19:20:11.145Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-10T19:17:42.107

Modified: 2026-09-10T20:17:31.417

Link: CVE-2026-88060

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-11T08:45:17Z

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output

  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')