CVE-2026-69151: Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes

Published Aug 3, 2026
·
Updated

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.

Other sources

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.27, 21.2.19, and 22.0.1, the Angular compiler i18n pipeline permits i18n-onerror and other i18n-on event-handler attributes, allowing a lower-trust translation file to replace a static handler with executable JavaScript. This issue is fixed in versions 20.3.27, 21.2.19, and 22.0.1.

MITRE

Affected Software

12 affected componentsFixes available
npm/@angular/core<=19.2.25
npm/@angular/core>=20.0.0-next.0<20.3.27
20.3.27
npm/@angular/core>=21.0.0-next.0<21.2.19
21.2.19
npm/@angular/core>=22.0.0-next.0<22.0.1
22.0.1
npm/@angular/compiler<=19.2.25
npm/@angular/compiler>=20.0.0-next.0<20.3.27
20.3.27
npm/@angular/compiler>=21.0.0-next.0<21.2.19
21.2.19
npm/@angular/compiler>=22.0.0-next.0<22.0.1
22.0.1
angular Angular Node.js<=19.2.25
angular Angular Node.js>=20.0.0<20.3.27
angular Angular Node.js>=21.0.0<21.2.19
angular Angular Node.js>=22.0.0<22.0.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@angular/core to a version that resolves this vulnerability.

    Fixed in 20.3.27
  2. Upgrade

    Upgrade npm/@angular/core to a version that resolves this vulnerability.

    Fixed in 21.2.19
  3. Upgrade

    Upgrade npm/@angular/core to a version that resolves this vulnerability.

    Fixed in 22.0.1
  4. Upgrade

    Upgrade npm/@angular/compiler to a version that resolves this vulnerability.

    Fixed in 20.3.27
  5. Upgrade

    Upgrade npm/@angular/compiler to a version that resolves this vulnerability.

    Fixed in 21.2.19
  6. Upgrade

    Upgrade npm/@angular/compiler to a version that resolves this vulnerability.

    Fixed in 22.0.1
  7. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.3.27
  8. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 21.2.19
  9. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 22.0.1
  10. Configuration

    In Angular application templates, ensure static event-handler attributes like `onerror` (and `onclick`) are never marked with `i18n-on*` attributes (e.g., do not use `i18n-onerror` / `i18n-on*`).

    Angular i18n (application templates) i18n-on* usage for static event-handler attributes (e.g., i18n-onerror, i18n-onclick) = Do not mark static event-handler attributes such as `onerror`/`onclick` for internationalization with `i18n-on*`
  11. Compensating control

    Ensure translation files used for Angular localization are sourced from trusted origins, so lower-trust translation files cannot replace static handlers with executable JavaScript.

Event History

Aug 3, 2026
CVE Published
via MITRE·04:23 PM
Data Sourced
via MITRE·04:23 PM
DescriptionWeakness
Advisory Published
via GitHub·04:23 PM
Data Sourced
via GitHub·04:23 PM
DescriptionWeaknessAffected Software
Data Sourced
via NVD·05:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-69151?

CVE-2026-69151 has a severity rating of high with a CVSS score of 7.6.

2

How do I fix CVE-2026-69151?

To fix CVE-2026-69151, ensure you are using the latest version of Angular that includes the security patches addressing this vulnerability.

3

What type of vulnerability is CVE-2026-69151?

CVE-2026-69151 is a Cross-Site Scripting (XSS) vulnerability related to the Angular i18n pipeline.

4

What software is affected by CVE-2026-69151?

CVE-2026-69151 affects Angular packages including npm/@angular/core and npm/@angular/compiler.

5

Can CVE-2026-69151 lead to any serious exploits?

Yes, CVE-2026-69151 can lead to severe exploits that may allow attackers to inject malicious scripts into websites.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203