HighGHSA-jj27-h5hq-8x99CVE-2026-69151

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

Published 3 Aug 2026 · Updated 3 Aug 2026

Affected packages

Affected
>=22.0.0-next.0 <22.0.1
Fixed in
22.0.1
Update to the fixed version for your release line, for example:npm install @angular/compiler@22.0.1
Affected
>=21.0.0-next.0 <21.2.19
Fixed in
21.2.19
Update to the fixed version for your release line, for example:npm install @angular/compiler@21.2.19
Affected
>=20.0.0-next.0 <20.3.27
Fixed in
20.3.27
Update to the fixed version for your release line, for example:npm install @angular/compiler@20.3.27
Affected
<=19.2.25
Fixed in
No fix released
Affected
>=22.0.0-next.0 <22.0.1
Fixed in
22.0.1
Update to the fixed version for your release line, for example:npm install @angular/core@22.0.1
Affected
>=21.0.0-next.0 <21.2.19
Fixed in
21.2.19
Update to the fixed version for your release line, for example:npm install @angular/core@21.2.19
Affected
>=20.0.0-next.0 <20.3.27
Fixed in
20.3.27
Update to the fixed version for your release line, for example:npm install @angular/core@20.3.27
Affected
<=19.2.25
Fixed in
No fix released

Details

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:

<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.

Is GHSA-jj27-h5hq-8x99 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected @angular/compiler, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.