CVE-2026-88058 Angular: SSR XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements

High 8.6 Published Updated

Angular SSR fails to escape processing instructions in raw-content elements, allowing attackers to inject scripts and execute arbitrary JavaScript in victim browsers.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-88058?

CVE-2026-88058 is a high-severity cross-site scripting vulnerability in angular, published on 10 Sep 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official 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 ProcessingInstruction DOM nodes inside fallback raw-content elements without escaping matching ancestor closing tags. ProcessingInstruction data escaped greater-than characters but left less-than characters untouched and did not inspect fallback ancestors, so data such as a matching closing tag prematurely terminates noscript, iframe, noembed, or noframes containers. The vulnerable nodes cannot be authored through standard Angular templates; reachability requires application or library code using inject(DOCUMENT).createProcessingInstruction with attacker-controlled data or Renderer2 DOM insertion inside a fallback container. In HTML5 RAWTEXT parsing, the premature close causes subsequent sibling elements to be interpreted as live HTML and enables arbitrary JavaScript execution in a victim's browser. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.

Weakness: CWE-79, CWE-116

Which versions are affected by CVE-2026-88058?

8 open source packages ship an affected version, including @angular/platform-server. It affects 1 product.

PackageAffectedFixed in
@angular/platform-server npmAll versions to 19.2.25None
@angular/platform-server npmAll versions to 19.2.25None
@angular/platform-server npmFrom 20.0.020.3.30
@angular/platform-server npmFrom 20.0.020.3.30
@angular/platform-server npmFrom 21.0.021.2.22
@angular/platform-server npmFrom 21.0.021.2.22
2 more packages
@angular/platform-server npmFrom 22.0.022.1.4
@angular/platform-server npmFrom 22.0.022.1.4

Products include Angular Angular.

How do I fix CVE-2026-88058?

Upgrade @angular/platform-server to a fixed version for your release line: 20.3.30, 21.2.22 or 22.1.4.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2026-88058 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-88058 exists.

Sources

Also known as DEBIAN-CVE-2026-88058, GHSA-j3r3-mxqp-r2p4, UBUNTU-CVE-2026-88058.

Is CVE-2026-88058 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free