{"schemaVersion":3,"id":"CVE-2026-46508","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. Prior to 2.9.14000, the Turborepo LSP VS Code extension could execute shell commands derived from workspace-controlled values. The extension used string-based command execution for Turborepo daemon commands and task runs. A malicious workspace could provide crafted values through workspace settings or task names in the repository's source code that were interpolated into shell commands. When the extension activated or when a user ran a task through the extension, those values could be interpreted by the user's shell, allowing arbitrary command execution with the privileges of the local VS Code process. This vulnerability is fixed in 2.9.14000.","dates":{"published":"2026-05-15T15:50:24.694Z","modified":"2026-05-15T18:05:01.165Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.4,"severity":"high","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.4,"severity":"high","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.4,"severity":"high","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/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","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.8,"severity":"high","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00236,"percentile":0.13756,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.07800000000000001,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00158},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00236,"percentile":0.13756}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00158,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00236,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00236,"percentile":0.13756}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-77","name":"Improper Neutralization of Special Elements used in a Command ('Command Injection')","description":"The product constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/77.html"}],"affected":[{"vendor":"vercel","product":"turborepo","name":"turborepo","label":"turborepo","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.9.14000","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.9.14000","eol":null,"hubHref":"/vendor/vercel/turborepo"},{"vendor":"vercel","product":"turborepo_language_server_protocol","name":"turborepo language server protocol","label":"turborepo_language_server_protocol","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.9.14000","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.9.14000","eol":null,"hubHref":"/vendor/vercel/turborepo_language_server_protocol"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/vercel/turborepo/security/advisories/GHSA-5xc8-49mv-x4mm","label":"github.com/vercel/turborepo/security/advisories/GHSA-5xc8-49mv-x4mm","hostname":"github.com","tags":["X Refsource CONFIRM","Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-05-15T15:50:24.694Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-05-15T18:05:01.165Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":34,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T16:01:21.045Z","stale":false,"partial":false}}