Skip to main content

Angular Language Service CVE-2026-49241

| EUVDEUVD-2026-38258 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-06-22 GitHub_M
8.7
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
8.8 HIGH

Repo is delivered over the network (AV:N), no special conditions or auth (AC:L/PR:N), but the developer must open the folder (UI:R); arbitrary code yields full CIA in the user context with no scope change.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
P
Scope
X

Lifecycle Timeline

3
Patch available
Jun 22, 2026 - 17:01 EUVD
Source Code Evidence Fetched
Jun 22, 2026 - 16:04 vuln.today
Analysis Generated
Jun 22, 2026 - 16:04 vuln.today

DescriptionCVE.org

The Angular Language Service VS Code Extension provides a rich editing experience for Angular templates. Prior to 21.2.4, the client-side Angular Language Service VS Code extension reads the custom TypeScript SDK paths typescript.tsdk and js/ts.tsdk.path directly from workspace configurations (.vscode/settings.json) without verifying VS Code Workspace Trust state or asking for user consent (located in client/src/client.ts). The client-side extension then passes the parsed settings path as a command-line argument (--tsdk) to the background Node.js language server process. During server initialization, the background language server resolves and dynamically imports (via standard Node.js require()) the module library tsserverlibrary.js relative to the workspace-specified custom directory path. An attacker can exploit this behavior by committing a repository containing a local malicious tsserverlibrary.js script inside a custom folder, and a crafted .vscode/settings.json file pointing to that folder. When a developer opens the repository folder in VS Code, the extension automatically attempts to initialize and load the server, which dynamically resolves, loads, and executes the malicious script silently in the background. This vulnerability is fixed in 21.2.4.

AnalysisAI

Arbitrary code execution in the Angular Language Service VS Code extension prior to 21.2.4 allows attackers to silently run code on a developer's machine simply by having them open a malicious repository in VS Code. The extension reads the typescript.tsdk and js/ts.tsdk.path workspace settings without checking Workspace Trust, then require()s a tsserverlibrary.js file from that attacker-controlled path. No public exploit identified at time of analysis, though the patch diff in PR #68857 clearly illustrates the exploit primitive.

Technical ContextAI

The vulnerability lives in the VS Code client portion of the Angular Language Service (vscode-ng-language-service/client/src/client.ts). VS Code exposes Workspace Trust to gate code execution paths triggered by untrusted .vscode/settings.json, but the extension bypassed this safeguard by calling config.get('js/ts.tsdk.path', config.get('typescript.tsdk', '')) and forwarding the value as a --tsdk command-line argument to the Node.js language server child process. During server initialization, Node.js's standard require() resolver loads tsserverlibrary.js relative to that attacker-supplied directory, producing arbitrary code execution in the language server process. Although NVD tags this CWE-79 (XSS), the actual root cause is closer to CWE-829 / CWE-94 (untrusted include / code injection via untrusted configuration), and CPE coverage (cpe:2.3:a:angular:angular) is overly broad - only the vscode-ng-language-service component is affected.

RemediationAI

Vendor-released patch: Angular Language Service VS Code extension 21.2.4 - upgrade via the VS Code Marketplace or your enterprise extension distribution channel. The fix in PR #68857 enforces vscode.workspace.isTrusted before honoring workspace-level tsdk paths and adds an explicit Allow/Disallow prompt persisted in workspaceState, falling back to globalValue otherwise. As a compensating control until upgrade, instruct developers to open unfamiliar repositories in VS Code's Restricted Mode and decline 'Trust' on repos they have not vetted, and audit existing repos for .vscode/settings.json files containing js/ts.tsdk.path or typescript.tsdk pointing inside the working tree - the trade-off is that legitimate workspaces using a vendored TypeScript SDK will load the bundled SDK instead, possibly producing version mismatches in diagnostics. Reference: https://github.com/angular/angular/security/advisories/GHSA-ccq4-xmxr-8hcq.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

CVE-2026-49241 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy