GitHub Advisoryadvisory · npm
GHSA-jj27-h5hq-8x99 Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes
HIGH
Official page ↗
- Aliases
- CVE-2026-69151
- Ecosystem
- npm
- Packages
- @angular/compiler, @angular/core
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
- Weaknesses
- CWE-79
- Reviewed
- 2026-08-03
Affected packages
• npm @angular/compiler: >= 22.0.0-next.0, < 22.0.1 → fixed in 22.0.1
• npm @angular/compiler: >= 21.0.0-next.0, < 21.2.19 → fixed in 21.2.19
• npm @angular/compiler: >= 20.0.0-next.0, < 20.3.27 → fixed in 20.3.27
• npm @angular/compiler: <= 19.2.25 (no fix yet)
• npm @angular/core: >= 22.0.0-next.0, < 22.0.1 → fixed in 22.0.1
• npm @angular/core: >= 21.0.0-next.0, < 21.2.19 → fixed in 21.2.19
• npm @angular/core: >= 20.0.0-next.0, < 20.3.27 → fixed in 20.3.27
• npm @angular/core: <= 19.2.25 (no fix yet)
Description
A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular compiler's internationalization (i18n) pipeline. Although Angular disallows binding to event-handler attributes such as `onclick` and `onerror` through standard attribute validation (`validateAttribute()` / `validateProperty()`), the i18n metadata collection path allowed these same attribute names to be marked for translation using `i18n-on*` attributes (e.g., `i18n-onerror`).
When exploited, a lower-trust translation file could replace a benign static handler such as `onerror="void 0"` with arbitrary executable JavaScript in the localized build.
The following example illustrates a vulnerable pattern:
```html
```
Impact
When exploited, this vulnerability allows arbitrary JavaScript execution within the context of the vulnerable application's domain if an attacker can control or influence the translation files used during localization. This can lead to:
• Session Hijacking: Accessing session cookies, tokens, or sensitive user data.
• Unauthorized Actions: Performing actions on behalf of the authenticated user.
Patched Versions
• 22.0.1
• 21.2.19
• 20.3.27
Workarounds
Ensure that static event-handler attributes (e.g., `onerror`, `onclick`) are never marked for internationalization (`i18n-on*`) in application templates, and ensure translation files are sourced from trusted origins.
Related
Alias · CVE (1)
- CVE-2026-69151 Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/angular/angular/security/advisories/GHSA-jj27-h5hq-8x99 web
- https://github.com/angular/angular/pull/68821 web
- https://github.com/angular/angular/pull/69306 web
- https://github.com/angular/angular/commit/417a4071a776464d549509ed3aec121dbd2fda5e web
- https://github.com/angular/angular/commit/6c41f5ca01c0ae045fc7d929b72853a11eb55865 web
- https://github.com/angular/angular package