Description
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, an issue in the @angular/core package allows bypassing script-execution restrictions during dynamic component creation. Specifically, the dynamic component instantiation mechanism (createComponent) failed to reject mounting components directly onto a <script> or namespaced script element (such as <svg:script>). This enabled the initialization of custom components on a tag that executes scripts, allowing attackers to hijack or inject script-executing hosts. This flaw enables an attacker who can control the host element or selector parameter passed to createComponent to initialize or mount an Angular component directly onto a <script> tag, leading to execution of untrusted code or client-side Cross-Site Scripting (XSS). This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
Published: 2026-06-22
Score: 5.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An Angular component created with createComponent respected script or namespaced script elements as attaches points, bypassing normal script-execution restrictions. Attackers that control the host element or selector passed to createComponent could mount a component directly onto a <script> tag or an element like <svg:script>, causing untrusted code to run in the browser. This flaw is a client‑side Cross‑Site Scripting vulnerability that can lead to arbitrary script execution by the user’s client. The weakness is classified as "Type of Code Injection" and listed as CWE‑79.

Affected Systems

Angular and its @angular/core package, specifically versions before 22.0.0‑rc.2, 21.2.15, 20.3.22 and 19.2.23. Any application using those releases and calling createComponent with a selector that could be manipulated by an attacker is affected.

Risk and Exploitability

The CVSS score of 5.3 places the flaw in the moderate range. There is no EPSS data and the vulnerability is not published in the KEV catalog. The attack requires an attacker who can supply a selector or host element for createComponent—typically through application code that accepts user input. Because the flaw sits inside a legitimate Angular API, exploitation is possible in any context where that API is exposed to untrusted input, making the vulnerability relevant in real‑world scenarios.

Generated by OpenCVE AI on June 22, 2026 at 16:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @angular/core to version 22.0.0‑rc.2 or later, 21.2.15, 20.3.22, or 19.2.23 or later releases
  • If an upgrade is not immediately viable, restrict or validate the selector input to ensure it does not target script or similar tags, and avoid passing user‑controlled values to createComponent
  • Configure a strict Content Security Policy that limits inline script execution to reduce the impact of any residual XSS issues

Generated by OpenCVE AI on June 22, 2026 at 16:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-692r-grfm-v8x7 @angular/core: Angular Template and Dynamic Component Namespace Bypass leading to Cross-Site Scripting (XSS)
History

Mon, 22 Jun 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 22 Jun 2026 15:45:00 +0000

Type Values Removed Values Added
Description Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, an issue in the @angular/core package allows bypassing script-execution restrictions during dynamic component creation. Specifically, the dynamic component instantiation mechanism (createComponent) failed to reject mounting components directly onto a <script> or namespaced script element (such as <svg:script>). This enabled the initialization of custom components on a tag that executes scripts, allowing attackers to hijack or inject script-executing hosts. This flaw enables an attacker who can control the host element or selector parameter passed to createComponent to initialize or mount an Angular component directly onto a <script> tag, leading to execution of untrusted code or client-side Cross-Site Scripting (XSS). This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
Title Angular Template and Dynamic Component Namespace Bypass leading to Cross-Site Scripting (XSS)
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 5.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-22T15:18:43.036Z

Reserved: 2026-06-08T14:00:43.571Z

Link: CVE-2026-52725

cve-icon Vulnrichment

Updated: 2026-06-22T15:59:26.819Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-22T16:30:08Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')