CVE-2026-69151: Angular i18n · Cross-Site Scripting (XSS) via event-handler attributes
Affects @angular/compilerSource GCVE Database
Not known to be exploited · CVSS 7.6 High : upgrade to 22.0.1 soon.
Data as of 26 Oct 2026, 12:55 UTC
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 26% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 22.0.1, 21.2.19, 20.3.27
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NExploitation evidence
Disclosed: evidence found.
CVE published 3 Aug 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade @angular/compiler and @angular/core to 22.0.1; @angular/compiler and @angular/core to 21.2.19; @angular/compiler and @angular/core to 20.3.27.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| npm@angular/compiler | Affected
| Fixed in
|
| npm@angular/compiler | Affected
| Fixed in
|
| npm@angular/compiler | Affected
| Fixed in
|
| npm@angular/compiler | Affected
| Fixed in– |
| npm@angular/core | Affected
| Fixed in
|
| npm@angular/core | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
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 <img src="foo.jpg" onerror="void 0" i18n-onerror /> ``` ### 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.
References
- github.com/angular/angular/security/advisories/GHSA-jj27-h5hq-8x99 (opens in a new tab)
- github.com/angular/angular/pull/68821 (opens in a new tab)
- github.com/angular/angular/pull/69306 (opens in a new tab)
- github.com/angular/angular/commit/417a4071a776464d549509ed3aec121dbd2fda5e (opens in a new tab)
- github.com/angular/angular/commit/6c41f5ca01c0ae045fc7d929b72853a11eb55865 (opens in a new tab)
- github.com/angular/angular (opens in a new tab)