CVE-2026-50555: Google Angular XSS in @angular/platform-server via domino serialization

CVE-2026-50555 · Severity: high · CVSS 3.1 · Published 2026-06-22

A security vulnerability exists in the Angular web development framework when using Server-Side Rendering (SSR). An attacker can bypass security filters by using specific Unicode characters (like emojis) to inject malicious scripts into a website. If successful, this could allow the attacker to steal user sessions, hijack accounts, or deface the website for any visitor.

Technologies: @angular/platform-server (npm). Vendors: npm.

Quick answers

Is CVE-2026-50555 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-50555 being exploited in the wild.
How severe is CVE-2026-50555?
High severity, with a CVSS score of 3.1, published 22 June 2026.
Which products and versions are affected?
@angular/platform-server (npm) SEMVER:introduced=22.0.0-next.0,fixed=22.0.0-rc.2.
Is there a fix for CVE-2026-50555?
Yes. @angular/platform-server (npm): upgrade to 22.0.0-rc.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-50555 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-50555?
Check whether you run @angular/platform-server (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @angular/platform-server (npm): upgrade to 22.0.0-rc.2 or later
    npm install @angular/platform-server@22.0.0-rc.2

Technical details

A Cross-Site Scripting (XSS) vulnerability exists in @angular/platform-server's DOM emulation dependency, domino, during the serialization of raw-text elements like <script>, <style>, and <iframe>. The root cause is a Unicode index alignment bug where astral characters (such as emojis) occupy two UTF-16 code units, causing an offset shift in domino's replacement logic. This misalignment prevents the library from correctly escaping closing tags in dynamic text. An attacker can exploit this by providing a payload containing astral characters followed by a closing tag (e.g., 😀</iframe><script>alert(1)</script>), which breaks out of the raw-text context during Server-Side Rendering (SSR) and executes arbitrary JavaScript in the victim's browser. The issue is fixed in Angular versions 22.0.0-rc.2, 21.2.16, 20.3.24, and 19.2.25.

Affected products

  • Google Angular < 19.2.25, >= 19.0.0-next.0 < 19.2.25, >= 20.0.0-next.0 < 20.3.24, >= 21.0.0-next.0 < 21.2.16, >= 22.0.0-next.0 < 22.0.0-rc.2

Identifiers

  • CVE-2026-50555
  • GHSA-hqr9-c56f-3x7f

Timeline

  • 2026-05-26: patched: Fix merged in domino dependency
  • 2026-06-02: advisory: GitHub Security Advisory published
  • 2026-06-22: disclosed: CVE published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.