{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-50178 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-50178 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-50178 is a high-severity command injection vulnerability in Angular.ng-template, published on 22 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2026-50178 and fix it if it is affected.\n\nWhat it is: CVE-2026-50178 is a high-severity command injection vulnerability in Angular.ng-template, published on 22 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2026-50178 in the wild and no public exploit code.\n\nAffected product: Angular.ng-template. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-50178/ (Markdown: https://insights.sbomify.com/CVE-2026-50178/index.md)","id":"CVE-2026-50178","markdown":"https://insights.sbomify.com/CVE-2026-50178/index.md","name":"CVE-2026-50178","record":{"aliases":["GHSA-q94j-3wj3-4xcm","UBUNTU-CVE-2026-50178"],"analysis":{"component_type":"developer_tool","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"yes","non_default_config":false,"product_category":"VS Code Angular Extension","requires_auth":"none","summary":"Attackers can execute arbitrary commands on a developer's machine by crafting malicious JSDoc comments that trigger command links in the Angular Language Service extension.","user_interaction":"required","vuln_class":"command_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"angular_language_service","vendor":"angular"}],"cvss":{"score":8.7,"severity":"high","source":"cna","vector":"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","version":"4.0"},"cwes":[{"id":"CWE-94","name":"Improper Control of Generation of Code"},{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation"}],"description":"The Angular Language Service VS Code Extension provides a rich editing experience for Angular templates. the client-side Angular Language Service VS Code extension configures the tooltip Markdown renderer with the isTrusted: true option (located in client/src/client.ts). This setting instructs VS Code to trust all rendered content it receives, which enables active elements such as command: URIs. However, the background Angular Language Server process fails to escape or sanitize brackets, raw links, and control characters from JSDoc strings before forwarding the hover Markdown content (located in server/src/handlers/hover.ts and server/src/text_render.ts). An attacker can leverage this behavior by crafting a project TypeScript or JavaScript file (or a third-party npm package dependency) containing a malicious JSDoc tooltip with an embedded active command link. When a developer hovers over the target symbol to render the tooltip and clicks the malicious link, the IDE executes the command sequence directly on the developer's host machine. Prior to 21.2.4,  This vulnerability is fixed in 21.2.4.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":false,"headline":"Angular: Remote Code Execution via JSDoc Hover Command Injection in VS Code Angular Language Service Extension","id":"CVE-2026-50178","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"command_injection","year":"2026"},"n_packages":0,"n_references":1,"next":{"headline":"Actual: CSV Formula Injection in Transaction Export via Imported Payee/Notes Fields","id":"CVE-2026-50179"},"packages":[],"prev":{"headline":"EVoke Systems EVoke CSMS Improper Restriction of Excessive Authentication Attempts","id":"CVE-2026-50176"},"products":["Angular.ng-template","angular"],"published":"2026-06-22","related":[{"cvss_score":8.7,"headline":"Angular: Multiple Remote Code Execution Vulnerabilities in Angular Language Service VS Code Extension","id":"CVE-2026-49241","kev_date_added":null,"published":"2026-06-22"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-06-22","vendors":["angular"]},"summary":"Attackers can execute arbitrary commands on a developer's machine by crafting malicious JSDoc comments that trigger command links in the Angular Language Service extension.","url":"https://insights.sbomify.com/CVE-2026-50178/"}