{"id":"CVE-2026-45772","aliases":["EUVD-2026-30551","GHSA-3qcw-2rhx-2726"],"status":"published","title":"Turborepo: Unexpected local code execution during Yarn Berry detection","description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. From 1.1.0 to before 2.9.14, Turborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed yarn --version from the project directory, which could cause Yarn to load and execute a project-controlled yarnPath from .yarnrc.yml. An attacker who controls repository contents could cause code execution when a user or CI system runs affected turbo, @turbo/codemod, or @turbo/workspace conversion commands. This vulnerability is fixed in 2.9.14.","severity":{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N","level":"none","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00386,"percentile":0.32952,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-426"],"published":"2026-05-15T15:45:45Z","modified":"2026-10-28T02:30:34Z","fixes":[{"ecosystem":"npm","package":"turbo","fixed_in":["2.9.14"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@turbo/codemod","fixed_in":["2.9.14"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@turbo/workspaces","fixed_in":["2.9.14"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"turbo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.1.0"},{"fixed":"2.9.14"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@turbo/codemod","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.4"},{"fixed":"2.9.14"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@turbo/workspaces","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.4"},{"fixed":"2.9.14"}]}]},{"source":"osv","ecosystem":"npm","package":"turbo","ranges":[{"type":"SEMVER","events":[{"introduced":"1.1.0"},{"fixed":"2.9.14"}]}]},{"source":"osv","ecosystem":"npm","package":"@turbo/codemod","ranges":[{"type":"SEMVER","events":[{"introduced":"2.3.4"},{"fixed":"2.9.14"}]}]},{"source":"osv","ecosystem":"npm","package":"@turbo/workspaces","ranges":[{"type":"SEMVER","events":[{"introduced":"2.3.4"},{"fixed":"2.9.14"}]}]}],"products":[{"vendor":"@turbo","product":"codemod"},{"vendor":"@turbo","product":"workspaces"},{"vendor":"vercel","product":"turborepo"}],"references":[{"url":"https://github.com/vercel/turborepo/security/advisories/GHSA-3qcw-2rhx-2726","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-45772","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3qcw-2rhx-2726"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45772.json","tags":["advisory"]},{"url":"https://github.com/vercel/turborepo","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-45772","title":"Turborepo: Unexpected local code execution during Yarn Berry detection","description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. From 1.1.0 to before 2.9.14, Turborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed yarn --version from the project directory, which could cause Yarn to load and execute a project-controlled yarnPath from .yarnrc.yml. An attacker who controls repository contents could cause code execution when a user or CI system runs affected turbo, @turbo/codemod, or @turbo/workspace conversion commands. This vulnerability is fixed in 2.9.14.","status":"published","published":"2026-05-15T15:45:45.252Z","modified":"2026-05-15T17:54:06.401Z","cvss":[{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N","level":"none","assessor":"cna"}],"cwes":["CWE-426"],"updated_at":"2026-11-02T13:46:32.755125Z"}],"euvd":[{"id":"EUVD-2026-30551","description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. From 1.1.0 to before 2.9.14, Turborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed yarn --version from the project directory, which could cause Yarn to load and execute a project-controlled yarnPath from .yarnrc.yml. An attacker who controls repository contents could cause code execution when a user or CI system runs affected turbo, @turbo/codemod, or @turbo/workspace conversion commands. This vulnerability is fixed in 2.9.14.","status":"published","published":"2026-05-15T15:45:45Z","modified":"2026-05-15T17:54:06Z","updated_at":"2026-11-02T19:04:28.290329Z"}],"ghsa":[{"id":"GHSA-3qcw-2rhx-2726","title":"Turbo: Unexpected local code execution during Yarn Berry detection","description":"### Impact  \n\nTurborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed `yarn --version` from the project directory, which could cause Yarn to load and execute a project-controlled `yarnPath` from `.yarnrc.yml`. An attacker who controls repository contents could cause code execution when a user or CI system runs affected `turbo`, `@turbo/codemod`, or `@turbo/workspace` conversion commands.\n\n### Fix  \n\nTurbo now avoids executing project-local Yarn during package manager detection. Yarn versions and paths are inferred from metadata such as `package.json`, parsing the value of `yarnPath` in `.yarnrc.yml` rather than executing it, and `yarn.lock`, and unrecognized Yarn lockfile formats are rejected instead of falling back to executing `yarn`.\n\n### Workarounds  \n\nIf you cannot upgrade immediately, do not run Turborepo commands in untrusted repositories. Review or remove `.yarnrc.yml` files that define `yarnPath` before running Turborepo, especially in CI or automated tooling that processes external projects.","status":"published","published":"2026-05-19T19:46:44Z","modified":"2026-05-19T19:46:44Z","cvss":[{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N","level":"none"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-426"],"updated_at":"2026-11-02T14:40:12.430932Z"}],"nvd":[{"id":"CVE-2026-45772","description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. From 1.1.0 to before 2.9.14, Turborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed yarn --version from the project directory, which could cause Yarn to load and execute a project-controlled yarnPath from .yarnrc.yml. An attacker who controls repository contents could cause code execution when a user or CI system runs affected turbo, @turbo/codemod, or @turbo/workspace conversion commands. This vulnerability is fixed in 2.9.14.","status":"published","published":"2026-05-15T16:16:14.987Z","modified":"2026-10-26T14:10:00.13Z","cvss":[{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/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","level":"none","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-426"],"updated_at":"2026-11-02T14:12:19.39893Z"}],"osv":[{"id":"CVE-2026-45772","title":"Turborepo: Unexpected local code execution during Yarn Berry detection","description":"Turborepo is a high-performance build system for JavaScript and TypeScript codebases. From 1.1.0 to before 2.9.14, Turborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed yarn --version from the project directory, which could cause Yarn to load and execute a project-controlled yarnPath from .yarnrc.yml. An attacker who controls repository contents could cause code execution when a user or CI system runs affected turbo, @turbo/codemod, or @turbo/workspace conversion commands. This vulnerability is fixed in 2.9.14.","status":"published","published":"2026-05-15T15:45:45.252Z","modified":"2026-10-28T02:30:34.633360905Z","cvss":[{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N","level":"none"}],"cwes":["CWE-426"],"updated_at":"2026-11-02T15:45:05.525666Z"},{"id":"GHSA-3qcw-2rhx-2726","title":"Turbo: Unexpected local code execution during Yarn Berry detection","description":"### Impact  \n\nTurborepo can be vulnerable to arbitrary code execution when run in untrusted repositories that contain malicious Yarn configuration. In affected versions, package manager detection executed `yarn --version` from the project directory, which could cause Yarn to load and execute a project-controlled `yarnPath` from `.yarnrc.yml`. An attacker who controls repository contents could cause code execution when a user or CI system runs affected `turbo`, `@turbo/codemod`, or `@turbo/workspace` conversion commands.\n\n### Fix  \n\nTurbo now avoids executing project-local Yarn during package manager detection. Yarn versions and paths are inferred from metadata such as `package.json`, parsing the value of `yarnPath` in `.yarnrc.yml` rather than executing it, and `yarn.lock`, and unrecognized Yarn lockfile formats are rejected instead of falling back to executing `yarn`.\n\n### Workarounds  \n\nIf you cannot upgrade immediately, do not run Turborepo commands in untrusted repositories. Review or remove `.yarnrc.yml` files that define `yarnPath` before running Turborepo, especially in CI or automated tooling that processes external projects.","status":"published","published":"2026-05-19T19:46:44Z","modified":"2026-09-10T03:51:04.443986062Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":0,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N","level":"none"}],"cwes":["CWE-426"],"updated_at":"2026-11-02T15:46:36.092962Z"}]}}
