CVE-2026-32635 Angular has XSS in i18n attribute bindings
Attackers can inject malicious scripts via i18n attribute bindings in Angular applications, bypassing sanitization mechanisms.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-32635?
CVE-2026-32635 is a high-severity cross-site scripting vulnerability in @angular compiler, published on 13 Mar 2026. Any signed-in user can exploit it over the network, 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 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-<attribute> name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.
Weakness: CWE-79
Which versions are affected by CVE-2026-32635?
20 open source packages ship an affected version, including @angular/compiler and @angular/core. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
@angular/compiler npm | From 17.0.0-next.0 to 18.2.14 | None |
@angular/compiler npm | From 17.0.0-next.0 to 18.2.14 | None |
@angular/compiler npm | From 19.0.0-next.0 | 19.2.20 |
@angular/compiler npm | From 19.0.0-next.0 | 19.2.20 |
@angular/compiler npm | From 20.0.0-next.0.0.0 | 20.3.18 |
@angular/compiler npm | From 20.0.0-next.0.0.0 | 20.3.18 |
14 more packages
@angular/compiler npm | From 21.0.0-next.0 | 21.2.4 |
@angular/compiler npm | From 21.0.0-next.0 | 21.2.4 |
@angular/compiler npm | From 22.0.0-next.0 | 22.0.0-next.3 |
@angular/compiler npm | From 22.0.0-next.0 | 22.0.0-next.3 |
@angular/core npm | From 17.0.0-next.0 to 18.2.14 | None |
@angular/core npm | From 17.0.0-next.0 to 18.2.14 | None |
@angular/core npm | From 19.0.0-next.0 | 19.2.20 |
@angular/core npm | From 19.0.0-next.0 | 19.2.20 |
@angular/core npm | From 20.0.0-next.0.0.0 | 20.3.18 |
@angular/core npm | From 20.0.0-next.0.0.0 | 20.3.18 |
@angular/core npm | From 21.0.0-next.0 | 21.2.4 |
@angular/core npm | From 21.0.0-next.0 | 21.2.4 |
@angular/core npm | From 22.0.0-next.0 | 22.0.0-next.3 |
@angular/core npm | From 22.0.0-next.0 | 22.0.0-next.3 |
Products include Angular Angular Cli.
How do I fix CVE-2026-32635?
Upgrade @angular/compiler to a fixed version for your release line: 19.2.20, 20.3.18, 21.2.4 or 22.0.0-next.3.
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-32635 being exploited?
There is no known exploitation of CVE-2026-32635 in the wild and no public exploit code.
Public exploit code: 1 proofs of concept on GitHub.
Other vulnerabilities in @angular compiler
Sources
Also known as CLSA-2026-1775521847, CLSA-2026-1775521853, CLSA-2026-1792161115, CLSA-2026-1792161116, CLSA-2026-1792163504, CLSA-2026-1792163505 and 27 more.