GHSA-prjf-86w9-mfqv

Suggest an improvement
Source
https://github.com/advisories/GHSA-prjf-86w9-mfqv
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-prjf-86w9-mfqv
Aliases
Published
2026-02-27T18:33:16Z
Modified
2026-02-28T06:24:33.665085Z
Severity
  • 6.1 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N CVSS Calculator
  • 7.0 (High) CVSS_V4 - CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Angular i18n vulnerable to Cross-Site Scripting
Details

A Cross-site Scripting (XSS) vulnerability has been identified in the Angular internationalization (i18n) pipeline. In ICU messages (International Components for Unicode), HTML from translated content was not properly sanitized and could execute arbitrary JavaScript.

Angular i18n typically involves three steps, extracting all messages from an application in the source language, sending the messages to be translated, and then merging their translations back into the final source code. Translations are frequently handled by contracts with specific partner companies, and involve sending the source messages to a separate contractor before receiving final translations for display to the end user.

If the returned translations have malicious content, it could be rendered into the application and execute arbitrary JavaScript.

Impact

When successfully exploited, this vulnerability allows for execution of attacker controlled JavaScript in the application origin. Depending on the nature of the application being exploited this could lead to:

  • Credential Exfiltration: Stealing sensitive user data stored in page memory, LocalStorage, IndexedDB, or cookies available to JS and sending them to an attacker controlled server.
  • Page Vandalism: Mutating the page to read or act differently than intended by the developer.

Attach Preconditions

  • The attacker must compromise the translation file (xliff, xtb, etc.).
  • Unlike most XSS vulnerabilities, this one is not exploitable by arbitrary users. An attacker must first compromise an application's translation file before they can escalate privileges into the Angular application client.
  • The victim application must use Angular i18n.
  • The victim application must use one or more ICU messages.
  • The victim application must render an ICU message.
  • The victim application must not defend against XSS via a safe Content-Security Policy (CSP) or Trusted Types.

Patches

  • 21.2.0
  • 21.1.6
  • 20.3.17
  • 19.2.19

Workarounds

Until the patch is applied, developers should consider:

  • Reviewing and verifying translated content received from untrusted third parties before incorporating it in an Angular application.
  • Enabling strict CSP controls to block unauthorized JavaScript from executing on the page.
  • Enabling Trusted Types to enforce proper HTML sanitization.

References

Database specific
{
    "nvd_published_at": "2026-02-26T02:16:24Z",
    "github_reviewed_at": "2026-02-27T18:33:16Z",
    "github_reviewed": true,
    "cwe_ids": [
        "CWE-79"
    ],
    "severity": "HIGH"
}
References

Affected packages

npm / @angular/core

Package

Name
@angular/core
View open source insights on deps.dev
Purl
pkg:npm/%40angular/core

Affected ranges

Type
SEMVER
Events
Introduced
21.2.0-next.0
Fixed
21.2.0

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json"
last_known_affected_version_range
"<= 21.2.0-rc.0"

npm / @angular/core

Package

Name
@angular/core
View open source insights on deps.dev
Purl
pkg:npm/%40angular/core

Affected ranges

Type
SEMVER
Events
Introduced
21.0.0-next.0
Fixed
21.1.6

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json"
last_known_affected_version_range
"<= 21.1.5"

npm / @angular/core

Package

Name
@angular/core
View open source insights on deps.dev
Purl
pkg:npm/%40angular/core

Affected ranges

Type
SEMVER
Events
Introduced
20.0.0-next.0
Fixed
20.3.17

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json"
last_known_affected_version_range
"<= 20.3.16"

npm / @angular/core

Package

Name
@angular/core
View open source insights on deps.dev
Purl
pkg:npm/%40angular/core

Affected ranges

Type
SEMVER
Events
Introduced
19.0.0-next.0
Fixed
19.2.19

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json"
last_known_affected_version_range
"<= 19.2.18"

npm / @angular/core

Package

Name
@angular/core
View open source insights on deps.dev
Purl
pkg:npm/%40angular/core

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
18.2.14

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/02/GHSA-prjf-86w9-mfqv/GHSA-prjf-86w9-mfqv.json"