CVE-2026-27970
Cross-Site Scripting in Angular i18n ICU Messages Enables JS Execution
Publication date: 2026-02-26
Last updated on: 2026-02-27
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| angular | angular | to 19.2.19 (exc) |
| angular | angular | From 20.0.0 (inc) to 20.3.17 (exc) |
| angular | angular | From 21.0.0 (inc) to 21.1.6 (exc) |
| angular | angular | 21.2.0 |
| angular | angular | 21.2.0 |
| angular | angular | 21.2.0 |
| angular | angular | 21.2.0 |
| angular | angular | 21.2.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
[{'type': 'paragraph', 'content': "CVE-2026-27970 is a Cross-Site Scripting (XSS) vulnerability in Angular's internationalization (i18n) pipeline, specifically in the handling of ICU (International Components for Unicode) messages used for translations."}, {'type': 'paragraph', 'content': 'The vulnerability arises because HTML content within translated ICU messages was not properly sanitized, allowing malicious JavaScript embedded in translation files (such as xliff or xtb) to execute when rendered in the application.'}, {'type': 'paragraph', 'content': 'An attacker must first compromise the translation files before injecting malicious scripts. The victim application must use Angular i18n, render ICU messages, and lack protective measures like strict Content-Security Policy (CSP) or Trusted Types enforcement.'}, {'type': 'paragraph', 'content': 'The fix involves blocking the creation of any URI attributes from ICU messages entirely, switching from a blocklist to an allowlist approach for HTML attributes in translations, dropping unknown attributes, and replacing URI attribute values with a safe placeholder to prevent malicious content execution.'}] [4, 1, 2, 3, 5]
How can this vulnerability impact me? :
If exploited, this vulnerability allows execution of attacker-controlled JavaScript within the Angular application origin.
This can lead to serious impacts such as credential exfiltration by accessing sensitive data stored in memory, LocalStorage, IndexedDB, or cookies.
It can also result in page vandalism or manipulation, compromising the integrity and trustworthiness of the application.
However, exploitation requires the attacker to have compromised the translation files beforehand, and the application must not have strict CSP or Trusted Types protections enabled.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability involves malicious JavaScript execution through compromised translation files (such as xliff or xtb) used in Angular's internationalization (i18n) ICU messages. Detection involves reviewing translation files for unexpected or suspicious HTML content, especially URI attributes that could contain JavaScript or harmful links.
Since the vulnerability is related to translation files and their content, network detection could include monitoring for unauthorized changes or transfers of translation files to or from your systems.
There are no specific commands provided in the resources or context to detect this vulnerability directly on a network or system.
What immediate steps should I take to mitigate this vulnerability?
To mitigate CVE-2026-27970, you should immediately apply the official patches provided in Angular versions 21.2.0, 21.1.6, 20.3.17, and 19.2.19 or later, which block unsafe URI attributes and enforce an allowlist of safe attributes in ICU message translations.
Until patches are applied, review and verify all translated content received from untrusted third parties before incorporating it into your Angular application.
Enable strict Content Security Policy (CSP) controls to block unauthorized JavaScript execution on your pages.
Enforce Trusted Types in your application to ensure proper HTML sanitization and prevent injection of malicious scripts.