脆弱性・CVE速報深刻度: 高

python-jose 3.5.0 までの版に空の HMAC 鍵を受け入れる認証バイパス CVE-2026-120459(CVSS v3.1 7.4): 検証鍵が空になる構成で、認証なしで任意のクレームの JWT を偽造されるおそれ

目次(5)

CVE-2026-120459

NVD は 2026-11-02 に、Python の JWT ライブラリ python-jose の 3.5.0 までの版で、長さ 0 の HMAC 秘密鍵を受け入れてしまうことによる認証バイパス CVE-2026-120459 を登録しました。アプリケーションが HS256/HS384/HS512 で署名を検証するときの鍵が空になる構成(たとえば k が空の oct 形式 JWK)では、認証なしの攻撃者が任意のクレームを持つ JWT を作り、jwt.decode に受理させられるとされています。

何が起きるか

  • 種類(CWE-347): 暗号署名の検証が不適切です。HMACKey と CryptographyHMACKey の両方が、長さ 0 の鍵を拒否せずに受け入れます。
  • 成立する条件: 検証に使う鍵が空として解決される構成が前提です。鍵を正しく設定している通常の構成が、そのまま影響を受けるとは記載されていません。
  • 影響: 条件が成立すると、署名の検証が実質的に無効になり、攻撃者が作ったトークンが正規のものとして通ります。ユーザーの成り済ましや権限の昇格につながるおそれがあります。
  • 評価: CVSS v4.0 は 9.1(CRITICAL)、v3.1 は 7.4(HIGH、AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N)です。いずれも VulnCheck による評価で、v3.1 では攻撃の複雑さが高とされています。
  • 影響範囲: python-jose の 3.5.0 まで(3.5.0 を含む)です。
  • 攻撃の具体的な手順は、本記事では扱いません。

数値と出典(2026-11-03 時点)

項目内容
CVECVE-2026-120459
CVSS v3.1(VulnCheck)7.4(HIGH)
CVSS v4.0(VulnCheck)9.1(CRITICAL)
NVD の状態Received(NVD 自身の分析は未実施)
EPSS未算定(FIRST の API に該当データなし)
KEV掲載なし
修正版未確認
出典NVD、VulnCheck の勧告

severity を high とした理由

認証不要・ネットワーク越しで、トークンの偽造に直結します。一方で、成立には検証鍵が空になる構成が必要で、CVSS v3.1 では攻撃の複雑さが高、スコアも 7.4 です。過去の判断の基準(認証不要かつ CVSS 9 以上を critical)に照らし、v3.1 が 9 未満のため high としています。v4.0 の 9.1 は参考値です。

対応として考えられること

  1. 組織内のアプリケーションやコンテナイメージで python-jose を使っていないか、使っている場合は版を確認します(pip の一覧や依存関係ファイルの確認)。
  2. JWT の検証に使う鍵が、設定の誤りや環境変数の未設定で空にならないか確認します。鍵が空のときは起動を止めるか、検証を拒否する作りにします(推定)。
  3. 修正版の公開状況をプロジェクトの配布元で確認し、公開されていれば更新します。公開されていない間は、鍵が空でないことを確認する処理をアプリケーション側に入れることを検討します(推定)。
  4. 過去に鍵が空だった期間がある場合は、その間に発行・受理されたトークンの利用記録を見直し、署名鍵を再設定します(推定)。
  5. 代替のライブラリへの移行も選択肢です(推定)。

未確認の点

  • 実際の攻撃での悪用は確認していません。
  • 修正版が公開されているかは確認できていません。
  • NVD の分析は未実施で、CVSS は VulnCheck の評価です。
  • 製品の導入状況や、鍵が空になる構成が実際にどれだけあるかは確認できていません。

この記事について

出典

この記事を共有