Résumé
Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes
Détails de l’avis
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.
Références
- https://github.com/advisories/GHSA-jj27-h5hq-8x99
- https://github.com/angular/angular/security/advisories/GHSA-jj27-h5hq-8x99
- https://github.com/angular/angular/pull/68821
- https://github.com/angular/angular/pull/69306
- https://github.com/angular/angular/commit/417a4071a776464d549509ed3aec121dbd2fda5e
- https://github.com/angular/angular/commit/6c41f5ca01c0ae045fc7d929b72853a11eb55865
Vulnérabilités liées
Tout Supply chain →- MEDIUMCVE-2026-63670
ApostropheCMS: Mutation-XSS / allowedTags bypass via literal `</textarea/>` solidus close
- MEDIUMCVE-2026-73295
Material for MkDocs: DOM XSS in search suggestions via query parameter
- HIGHGHSA-99rq-75j6-5j9f
SiYuan: Stored and reflected XSS in SiYuan through an SVG sanitizer bypass
- MEDIUMCVE-2026-68921
DiceBear: SVG injection via the unescaped rotate option in @dicebear/core (and fontSize/fontWeight in @dicebear/initials)
- MEDIUMCVE-2026-82396
Sulu: Stored XSS via media download inline-disposition override
- MEDIUMGHSA-cp6q-959q-f8rh
Tiptap: mergeAttributes() turns an own __proto__ key into inherited executable DOM attributes