---
title: "python-jose 3.5.0 までの版に空の HMAC 鍵を受け入れる認証バイパス CVE-2026-120459（CVSS v3.1 7.4）: 検証鍵が空になる構成で、認証なしで任意のクレームの JWT を偽造されるおそれ"
url: https://n-t-p.io/worldsecurity/articles/python-jose-empty-hmac-key-jwt-forgery-authentication-bypass-cve-2026-120459
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月2日
updated: 2026年11月2日
severity: 高
cve: CVE-2026-120459
---

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

> **TL;DR:** python-jose 3.5.0 までで、長さ 0 の HMAC 鍵を受け入れるため、検証鍵が空になる構成では認証なしで JWT を偽造できる（CVE-2026-120459、CWE-347）。CVSS v3.1 7.4・v4.0 9.1（VulnCheck 評価）、KEV なし、EPSS は未算定。修正版は未確認。

**要点**
- python-jose 3.5.0 までに、長さ 0 の HMAC 鍵を受け入れる認証バイパスがある（CVE-2026-120459、CWE-347）
- 成立には HS256／HS384／HS512 の検証鍵が空になる構成が必要。条件が合うと、認証なしで任意のクレームの JWT を偽造できる
- CVSS v3.1 7.4（攻撃の複雑さ高）・v4.0 9.1（いずれも VulnCheck の評価）。NVD は Received で分析は未実施
- KEV 掲載なし。EPSS は未算定。修正版は未確認
- 対策は版の確認と、検証鍵が空にならないことの確認が中心（推定）。悪用の有無と導入状況は未確認

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 時点）

| 項目 | 内容 |
|---|---|
| CVE | CVE-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 の評価です。
- 製品の導入状況や、鍵が空になる構成が実際にどれだけあるかは確認できていません。


## 出典
- [NVD CVE-2026-120459](https://nvd.nist.gov/vuln/detail/CVE-2026-120459) — NIST NVD
- [VulnCheck 勧告（python-jose through 3.5.0）](https://www.vulncheck.com/advisories/python-jose-through-3.5.0-authentication-bypass-via-empty-hmac-key) — VulnCheck
- [FIRST EPSS](https://api.first.org/data/v1/epss?cve=CVE-2026-120459) — FIRST
- [CISA KEV カタログ](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/python-jose-empty-hmac-key-jwt-forgery-authentication-bypass-cve-2026-120459