目次(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 時点)
| 項目 | 内容 |
|---|---|
| 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 は参考値です。
対応として考えられること
- 組織内のアプリケーションやコンテナイメージで python-jose を使っていないか、使っている場合は版を確認します(pip の一覧や依存関係ファイルの確認)。
- JWT の検証に使う鍵が、設定の誤りや環境変数の未設定で空にならないか確認します。鍵が空のときは起動を止めるか、検証を拒否する作りにします(推定)。
- 修正版の公開状況をプロジェクトの配布元で確認し、公開されていれば更新します。公開されていない間は、鍵が空でないことを確認する処理をアプリケーション側に入れることを検討します(推定)。
- 過去に鍵が空だった期間がある場合は、その間に発行・受理されたトークンの利用記録を見直し、署名鍵を再設定します(推定)。
- 代替のライブラリへの移行も選択肢です(推定)。
未確認の点
- 実際の攻撃での悪用は確認していません。
- 修正版が公開されているかは確認できていません。
- NVD の分析は未実施で、CVSS は VulnCheck の評価です。
- 製品の導入状況や、鍵が空になる構成が実際にどれだけあるかは確認できていません。
この記事について
- 執筆・編集
- World Security 編集部
出典
- NVD CVE-2026-120459(NIST NVD)
- VulnCheck 勧告(python-jose through 3.5.0)(VulnCheck)
- FIRST EPSS(FIRST)
- CISA KEV カタログ(CISA)




