GHSA-jrmj-c5cx-3cw6

Suggest an improvement
Source
https://github.com/advisories/GHSA-jrmj-c5cx-3cw6
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-jrmj-c5cx-3cw6
Aliases
Published
2026-01-09T18:52:14Z
Modified
2026-01-11T15:07:49.009303Z
Severity
  • 8.5 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Angular has XSS Vulnerability via Unsanitized SVG Script Attributes
Details

A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular Template Compiler. The vulnerability exists because Angular’s internal sanitization schema fails to recognize the href and xlink:href attributes of SVG <script> elements as a Resource URL context.

In a standard security model, attributes that can load and execute code (like a script's source) should be strictly validated. However, because the compiler does not classify these specific SVG attributes correctly, it allows attackers to bypass Angular's built-in security protections.

When template binding is used to assign user-controlled data to these attributes for example, <script [attr.href]="userInput"> the compiler treats the value as a standard string or a non-sensitive URL rather than a resource link. This enables an attacker to provide a malicious payload, such as a data:text/javascript URI or a link to an external malicious script.

Impact

When successfully exploited, this vulnerability allows for arbitrary JavaScript execution within the context of the victim's browser session. This can lead to: - Session Hijacking: Stealing session cookies, localStorage data, or authentication tokens. - Data Exfiltration: Accessing and transmitting sensitive information displayed within the application. - Unauthorized Actions: Performing state-changing actions (like clicking buttons or submitting forms) on behalf of the authenticated user.

Attack Preconditions

  1. The victim application must explicitly use SVG <script> elements within its templates.
  2. The application must use property or attribute binding (interpolation) for the href or xlink:href attributes of those SVG scripts.
  3. The data bound to these attributes must be derived from an untrusted source (e.g., URL parameters, user-submitted database entries, or unsanitized API responses).

Patches

  • 19.2.18
  • 20.3.16
  • 21.0.7
  • 21.1.0-rc.0

Workarounds

Until the patch is applied, developers should:

  • Avoid Dynamic Bindings: Do not use Angular template binding (e.g., [attr.href]) for SVG <script> elements.
  • Input Validation: If dynamic values must be used, strictly validate the input against a strict allowlist of trusted URLs on the server side or before it reaches the template.

Resources

  • https://github.com/angular/angular/pull/66318
Database specific
{
    "github_reviewed": true,
    "cwe_ids": [
        "CWE-79"
    ],
    "severity": "HIGH",
    "github_reviewed_at": "2026-01-09T18:52:14Z",
    "nvd_published_at": "2026-01-10T04:16:01Z"
}
References

Affected packages

npm

@angular/compiler

Package

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

Affected ranges

Type
SEMVER
Events
Introduced
21.1.0-next.0
Fixed
21.1.0-rc.0

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@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.1.0-next.0
Fixed
21.1.0-rc.0

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@angular/compiler

Package

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

Affected ranges

Type
SEMVER
Events
Introduced
21.0.0-next.0
Fixed
21.0.7

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

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

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@angular/compiler

Package

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

Affected ranges

Type
SEMVER
Events
Introduced
20.0.0-next.0
Fixed
20.3.16

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

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

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@angular/compiler

Package

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

Affected ranges

Type
SEMVER
Events
Introduced
19.0.0-next.0
Fixed
19.2.18

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

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

Database specific

source

"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@angular/compiler

Package

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

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/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"

@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/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json"