【活用ガイド】

JVNDB-2026-017953

Laravel Holdings Inc.のLaravel Passportにおける認証に関する脆弱性

概要

Laravel PassportはLaravelにOAuth2サーバーサポートを提供します。バージョン13.0.0から13.7.1未満の間に、client_credentialsトークンに対する認証バイパスの脆弱性が存在していました。league/oauth2-serverライブラリはJWTのsubクレームをクライアント識別子として設定します(ユーザーが存在しないためです)。その後、トークンガードはこの値をretrieveById()に渡しますが、それが実際にユーザー識別子であるかを検証しないため、無関係の実際のユーザーを誤って解決してしまう可能性があります。これにより、任意のマシン間トークンが誤って実際のユーザーとして認証される可能性があります。この脆弱性はバージョン13.7.1で修正されました。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.1 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 高
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更あり
  • 機密性への影響(C): 高
  • 完全性への影響(I): 低
  • 可用性への影響(A): なし
影響を受けるシステム


Laravel Holdings Inc.
  • Laravel Passport 13.0.0 以上 13.7.1 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。
・当該ソフトウェアは停止しません。
対策

ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

GitHub
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 不適切な認証(CWE-287) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-39976
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-39976
  2. 関連文書 : Prevent user impersonation via client credentials token by pushpak1300  Pull Request #1901  laravel/passport  GitHub
  3. 関連文書 : [13.X] fix: resolve user as null when user ID matches client ID on integer key setups by Can-Kar  Pull Request #1902  laravel/passport  GitHub
  4. 関連文書 : v9 Client Credentials grant broken  Issue #1456  thephpleague/oauth2-server
  5. 関連文書 : TokenGuard::authenticateViaBearerToken() does not validate oauth_user_id type, causing user impersonation with client_credentials tokens  Issue #1900  laravel/passport
更新履歴

  • [2026年06月04日]
      掲載