Packages / turbo / Security

ModerateVulnerabilityGHSA-hcf7-66rw-9f5rCVE-2026-45773Published 19 May 2026

Turbo: Login callback CSRF/session fixation

Affected releases · turbo

  • 2.x2.0.0 – 2.9.12Fixed in 2.9.14
  • 1.x and older0.0.1 – 1.13.4No fix, no longer updated

On 2.x, the newest line:

npm install turbo@2.9.14
2.x
  1. Affected

    2.0.0 – 2.9.12

    90 releases

  2. Fixed

    2.9.14 – 2.11.10

    30 releases, latest

1.x
  1. Affected

    1.0.0 – 1.13.4

    138 releases

0.x
  1. Affected

    0.0.1 – 0.8.5

    69 releases

327 stable releases of turbo, oldest to newest, one row per major.

Is your project affected?

Paste your package.json, or type the range you declare for turbo. It is read in your browser and sent nowhere.

What happens

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.