Executive brief
The Angular Language Service extension for Visual Studio Code, which provides code editing features for Angular developers, contains a vulnerability that allows for remote code execution. An attacker can include malicious code in a project file or a third-party library that, when hovered over by a developer, displays a clickable link. If the developer clicks this link, the attacker can execute arbitrary commands on the developer's computer, potentially leading to full system compromise, data theft, or unauthorized access to corporate networks.
Technical details
The vulnerability exists because the client-side Angular Language Service VS Code extension (Angular.ng-template) incorrectly configures its tooltip Markdown renderer with the 'isTrusted: true' option. Simultaneously, the background Angular Language Server fails to sanitize or escape brackets and control characters in JSDoc strings. An attacker can exploit this by placing a malicious JSDoc payload containing a 'command:' URI in a TypeScript/JavaScript file or npm dependency. When a user hovers over the affected symbol and clicks the resulting link in the tooltip, the IDE executes the embedded command. This bypasses VS Code's Workspace Trust model and Restricted Mode, allowing for arbitrary code execution on the developer's machine. The issue is fixed in version 21.2.4.
Affected products
- Angular Angular Language Service VS Code Extension (Angular.ng-template) < 21.2.4
Timeline
- 2026-05-28: advisory: GitHub advisory published
- 2026-06-22: disclosed: NVD publication date