Skip to content

chore(deps): update dependency turbo to v2.9.14 [security] - #647

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-turbo-vulnerability
Open

chore(deps): update dependency turbo to v2.9.14 [security]#647
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-turbo-vulnerability

Conversation

@renovate

@renovate renovate Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
turbo (source) 2.8.112.9.14 age adoption passing confidence

Turbo: Unexpected local code execution during Yarn Berry detection

CVE-2026-45772 / GHSA-3qcw-2rhx-2726

More information

Details

Impact

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.

Fix

Turbo 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.

Workarounds

If 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.

Severity

  • CVSS Score: 0.0 / 10 (Low)
  • Vector String: 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

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Turbo: Login callback CSRF/session fixation

CVE-2026-45773 / GHSA-hcf7-66rw-9f5r

More information

Details

Impact

Turborepo's self-hosted login and SSO browser flows did not validate a CSRF state value on the localhost callback. While the CLI was waiting for authentication, a malicious web page could send a request to the local callback server with an attacker-controlled token. If accepted before the legitimate callback, the CLI could complete login with the wrong credentials.

This affects users authenticating the turbo CLI against self-hosted remote cache/auth endpoints. Vercel-hosted login flows using device authorization are not affected.

Fix

The login and SSO redirect flows now generate a random state value, include it in the browser authentication URL, and require the same value on the localhost callback before accepting a token. Callbacks with a missing or mismatched state are rejected.

Workarounds

If you cannot upgrade immediately, avoid browser-based self-hosted turbo login or SSO flows on machines that may load untrusted web content during authentication. Use a pre-provisioned token or environment-based authentication instead.

Severity

  • CVSS Score: 5.1 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:L/SI:H/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

vercel/turborepo (turbo)

v2.9.14: Turborepo v2.9.14

Compare Source

[!NOTE]
This release contains important security fixes.

High:
Low:

What's Changed

Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.12...v2.9.14

v2.9.12: Turborepo v2.9.12

Compare Source

What's Changed

Changelog

Full Changelog: vercel/turborepo@v2.9.11...v2.9.12

v2.9.11: Turborepo v2.9.11

Compare Source

What's Changed

Changelog

Full Changelog: vercel/turborepo@v2.9.10...v2.9.11

v2.9.10: Turborepo v2.9.10

Compare Source

What's Changed
Changelog

Full Changelog: vercel/turborepo@v2.9.9...v2.9.10

v2.9.9: Turborepo v2.9.9

Compare Source

What's Changed

Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.8...v2.9.9

v2.9.8: Turborepo v2.9.8

Compare Source

What's Changed

@​turbo/repository
Changelog

Full Changelog: vercel/turborepo@v2.9.7...v2.9.8

v2.9.7: Turborepo v2.9.7

Compare Source

What's Changed

eslint
Examples
Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.6...v2.9.7

v2.9.6: Turborepo v2.9.6

Compare Source

What's Changed

create-turbo
Examples
Changelog

Full Changelog: vercel/turborepo@v2.9.5...v2.9.6

v2.9.5: Turborepo v2.9.5

Compare Source

What's Changed

create-turbo
@​turbo/telemetry
Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.4...v2.9.5

v2.9.4: Turborepo v2.9.4

Compare Source

What's Changed

@​turbo/codemod
Examples
Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.3...v2.9.4

v2.9.3: Turborepo v2.9.3

Compare Source

What's Changed

Changelog

Full Changelog: vercel/turborepo@v2.9.2...v2.9.3

v2.9.2: Turborepo v2.9.2

Compare Source

What's Changed

Examples
Changelog

New Contributors

Full Changelog: vercel/turborepo@v2.9.1...v2.9.2

v2.9.1: Turborepo v2.9.1

Compare Source

What's Changed

@​turbo/codemod
@​turbo/repository
Changelog

Full Changelog: vercel/turborepo@v2.9.0...v2.9.1

v2.9.0: Turborepo v2.9.0

Compare Source

What's Changed

Docs
create-turbo
turbo-ignore
@​turbo/codemod
eslint
@​turbo/repository

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Asia/Shanghai)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label May 28, 2026
@vercel

vercel Bot commented May 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
shiro Error Error Sep 3, 2026 10:42pm UTC

@safedep

safedep Bot commented May 28, 2026

Copy link
Copy Markdown

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

Package Details
Package Malware Vulnerability Risky License Report
@codemirror/autocomplete @ 6.20.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/commands @ 6.11.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/lang-html @ 6.4.12
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/lang-jinja @ 6.0.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/lang-markdown @ 6.5.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/lang-yaml @ 6.1.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/language @ 6.12.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/legacy-modes @ 6.5.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/lint @ 6.9.7
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/state @ 6.7.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@codemirror/view @ 6.43.11
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@floating-ui/core @ 1.8.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@floating-ui/dom @ 1.8.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@floating-ui/react-dom @ 2.1.9
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@floating-ui/utils @ 0.2.12
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-editor @ 0.0.105
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-kit-shiro @ 0.0.105
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@iconify-json/material-icon-theme @ 1.2.70
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@iconify/utils @ 3.1.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@icons-pack/react-simple-icons @ 13.15.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/clipboard @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/code-core @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/dragon @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/extension @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/headless @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/html @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/link @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/list @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/markdown @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/rich-text @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/selection @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/table @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/text @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lexical/utils @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/common @ 1.5.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/cpp @ 1.1.6
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/css @ 1.3.6
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/lr @ 1.4.10
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/markdown @ 1.7.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/php @ 1.0.6
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@lezer/python @ 1.1.19
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@marijn/find-cluster-break @ 1.0.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@mermaid-js/parser @ 1.2.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@napi-rs/wasm-runtime @ 1.2.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@oxc-project/types @ 0.148.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@preact/signals-core @ 1.14.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@rolldown/pluginutils @ 1.0.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/core @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/engine-javascript @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/engine-oniguruma @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/langs @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/primitive @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/themes @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@shikijs/types @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@tybys/wasm-util @ 0.10.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@types/hast @ 3.0.5
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
ajv @ 6.15.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
buffer-image-size @ 0.6.4
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
crelt @ 1.0.7
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
cytoscape @ 3.34.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
cytoscape-cose-bilkent @ 4.1.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
cytoscape-fcose @ 2.2.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
dayjs @ 1.11.23
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
dompurify @ 3.4.14
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
es-toolkit @ 1.52.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
fastdom @ 1.0.12
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
happy-dom @ 20.14.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
import-meta-resolve @ 4.2.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
katex @ 0.16.47
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
lexical @ 0.42.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
lightningcss @ 1.33.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
lodash-es @ 4.18.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
lucide-react @ 1.40.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
mermaid @ 11.17.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
nanoid @ 3.3.18
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
oniguruma-parser @ 0.12.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
oniguruma-to-es @ 4.3.6
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
picomatch @ 4.0.7
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
postcss @ 8.5.28
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
react-intersection-observer @ 10.1.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
rolldown @ 1.2.7
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
semver @ 7.8.5
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
shiki @ 4.4.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
strictdom @ 1.0.1
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
stylis @ 4.4.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
tinyglobby @ 0.2.17
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
ts-dedent @ 2.3.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
turbo @ 2.9.14
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
uuid @ 14.0.2
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
vite @ 8.0.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
vitest @ 4.1.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
ws @ 8.21.3
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗

View complete scan results →

This report is generated by SafeDep GitHub App

@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 8f89b0e to 436c65f Compare June 1, 2026 17:53
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 436c65f to 8962959 Compare June 13, 2026 20:03
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 8962959 to 46c6adf Compare July 12, 2026 16:53
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 46c6adf to cd7fbe7 Compare July 16, 2026 19:29
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from cd7fbe7 to 84bfb60 Compare July 21, 2026 02:49
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 84bfb60 to c7d32ab Compare July 24, 2026 16:33
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from c7d32ab to 7af1438 Compare July 30, 2026 16:34
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 7af1438 to 998ea93 Compare August 11, 2026 22:30
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 998ea93 to 75d9d62 Compare August 14, 2026 11:12
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 75d9d62 to 7eee0c1 Compare August 26, 2026 20:36
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 7eee0c1 to 161e9c8 Compare September 2, 2026 14:19
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from 161e9c8 to ebd3100 Compare September 3, 2026 10:54
@renovate
renovate Bot force-pushed the renovate/npm-turbo-vulnerability branch from ebd3100 to 3e72a89 Compare September 3, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants