CVE-2026-69149: Angular SSR: Missing Fallback Raw-Content Serialization Escaping leads to Cross-Site Scripting (XSS)
A Cross-Site Scripting (XSS) vulnerability exists in @angular/platform-server’s DOM emulation dependency (domino) when serializing the content of fallback raw-content elements (<iframe>, <noembed>, <noframes>, and <noscript>).
When rendering dynamic text content inside fallback raw-content elements via template bindings, the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), domino is configured with scripting enabled, meaning these elements are treated as raw-text elements.
However, domino’s serializer previously did not escape text nodes within fallback raw-content elements (<iframe>, <noembed>, <noframes>, <noscript>) during DOM serialization. As a result, any occurrence of closing tags in the bound dynamic text was not escaped.
The unescaped closing tag could be serialized directly into the output HTML. When parsed by a browser or re-parsed during SSR post-processing without preserving raw-content parser state, an injected closing tag closes the element early, allowing an injected script block to execute in the user’s browser context, causing same-origin Cross-Site Scripting (XSS).
References
- github.com/advisories/GHSA-vpx6-8pjr-4g3v
- github.com/angular/angular/pull/69675
- github.com/angular/angular/pull/69714
- github.com/angular/angular/pull/69929
- github.com/angular/angular/pull/69930
- github.com/angular/angular/security/advisories/GHSA-vpx6-8pjr-4g3v
- github.com/angular/domino/commit/f88e5aa49cf2804d7c2df22ef1640eb4ec43dd56
- github.com/angular/domino/pull/32
- nvd.nist.gov/vuln/detail/CVE-2026-69149
Code Behaviors & Features
Detect and mitigate CVE-2026-69149 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →