You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel10中league/oauth2-server无法更新(CVE-2023-37260)求助

问题:Laravel Passport依赖的league/oauth2-server无法更新至安全版本8.5.x

环境与漏洞背景

  • 使用Laravel 10框架,通过laravel/passport组件处理OAuth2认证
  • 依赖的league/oauth2-server存在CVE-2023-37260安全漏洞:传入无效密码短语时,密钥会暴露在异常信息中,受影响版本范围为>=8.3.2且<8.5.3

当前配置信息

composer.lock中相关依赖片段

"require": {
    "league/oauth2-server": "^8.2",     // 目标更新至8.5
},

composer.json中相关依赖

"require": {
    "php": "^8.0.2",
    "guzzlehttp/guzzle": "^7.2",
    "laravel/framework": "^10.0",
    "laravel/passport": "^11.8",
    "laravel/tinker": "^2.7"
},

尝试操作与问题

已执行composer update(删除composer.lock文件后),但league/oauth2-server版本仍未更新到安全的8.5.x版本。

原因分析

核心原因是Laravel Passport v11.8的依赖约束限制了league/oauth2-server的版本范围。

Passport v11.x的官方依赖配置中,对league/oauth2-server的约束为^8.2但实际上限被限制在<8.5——因为该版本的Passport未适配league/oauth2-server 8.5.x版本的API变更。Composer在处理依赖时会严格遵循上层包(Passport)的版本约束,因此即使删除lock文件执行更新,也无法安装超出Passport允许范围的league/oauth2-server版本。

解决方案

  1. 升级Laravel Passport到兼容版本:Passport v12.x已将league/oauth2-server的依赖约束更新为^8.5,完全兼容安全版本。修改composer.json中Passport的版本为^12.0,执行composer update即可自动更新league/oauth2-server到8.5.x。
  2. 强制指定版本(临时方案,需测试):如果暂时无法升级Passport,可以在composer.json中直接添加league/oauth2-server的明确版本约束,覆盖Passport的限制:
    "require": {
        // 保留原有依赖
        "league/oauth2-server": "8.5.3"
    }
    
    注意:此方式可能引发Passport与league/oauth2-server的兼容性问题,必须完成充分功能测试后再上线。

内容的提问来源于stack exchange,提问作者Carlson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:13:26