概要
PyJWT は Python エコシステム で 最も 広く 利用 されて いる JSON Web Token (JWT) ライブラリ です。バージョン 2.12.0 未満 に おいて、RFC 7515 で 定義 されて いる crit(Critical)ヘッダパラメータ の 検証 が 行われて いない 問題 が 存在 します(CWE-345: データ真正性検証不十分、CWE-863)。
RFC 7515 では crit ヘッダ に 列挙 された 拡張 は 必ず 理解・処理 されなければ なら ず、未知 の 拡張 が 含まれる 場合 は トークン を 拒否 する こと が 求められて います。しかし PyJWT の 該当 バージョン では この 検証 が 欠落 して おり、不明 な 拡張 を 含む トークン を そのまま 受容 して しまいます。
この 問題 に より、トークン の 完全性 検証 が 不十分 と なり、攻撃者 が 意図的 に 未知 の クリティカル 拡張 を 含む JWT を 作成 して 認証 を バイパス する 可能性 が あります。PyJWT を 使用 して いる Python アプリケーション は、バージョン 2.12.0 以上 へ の アップデート を 推奨 します。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 7.5 |
| 深刻度 | High |
| CWE | CWE-345 (データ真正性検証不十分), CWE-863 |
| 攻撃元 | ネットワーク |
| 攻撃条件 | 低 |
| 認証 | 不要 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| PyJWT | jpadilla | 2.12.0 未満 |
修正バージョンと回避策
- 修正バージョン: PyJWT 2.12.0 へ アップデート して ください
- 暫定回避策: JWT の 検証 処理 に おいて、
critヘッダ の 存在 を 独自 に チェック し、未知 の 拡張 が 含まれる トークン を アプリケーション レベル で 拒否 する ロジック を 追加 する こと で リスク を 軽減 できます
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
