PyJWT: PyJWKClientがJWKSの取得時にリダイレクトを追跡する
### 概要
PyJWT 2.13.0の`PyJWKClient`は、JWKSを取得する際にHTTPリダイレクトを追跡していましたが、リダイレクト先の検証を行っていませんでした。 その結果、設定された信頼できるエンドポイントが、クライアントを別のホストにリダイレクトする可能性がありました。
### 影響
アプリケーションが、クライアントから提供されたリクエストヘッダーと共に`PyJWKClient`を使用しており、攻撃者が設定されたエンドポイントの応答に影響を与えることができる場合、リダイレクトされたリクエストによって、それらのヘッダーが公開される可能性があります。 また、リダイレクトされた応答が、信頼できる鍵情報として使用される可能性があります。 これにより、JWKSの信頼性を損なうことがあり、影響を受ける混合構成のアプリケーションでは、偽のJWTが受け入れられる可能性があります。 この問題は、設定されたJWKSエンドポイントからの攻撃者によるリダイレクトによって引き起こされます。 トークンの`kid`だけではトリガーされません。
### 影響を受けるバージョン
PyJWT `<= 2.13.0`.
### 修正
この問題は、`master`ブランチのコミット
[`0a795b8e1f6ef08f634aa7086fc41cc6d5ce3e56`](https://github.com/jpadilla/pyjwt/commit/0a795b8e1f6ef08f634aa7086fc41cc6d5ce3e56)で修正されました。
`PyJWKClient`は、JWKSの取得における自動リダイレクトを無効にしました。 回帰テストにより、リダイレクト先への問い合わせなしにリダイレクトが拒否されることが確認されています。 また、通常の取得、ヘッダー、キャッシュ、エラー、タイムアウト、およびSSLコンテキストは引き続きサポートされています。
この修正は、未リリースの開発ブランチに存在します。 パッチが適用されたバージョンは、修正が含まれるPyJWT 2.xバージョンがリリースされた後に記録されます。
### 貢献者
貢献者: GHSA-9v7f-9g4p-ffgjの最初の報告者。 新しい重複報告であるGHSA-43g3-98cx-x446からの、追加のリダイレクトヘッダー漏洩およびキャッシュ汚染に関する情報は、重複報告に保存されており、この公式なアドバイザリの更新に役立ちました。
## メンテナからの更新 — 2026年9月11日
このアドバイザリに対する検証済みの修正は、2026年9月11日にリリースされたPyJWT 2.14.0に含まれています。 PyJWT 2.14.0は、修正が含まれる最初のリリースです。 このアドバイザリは、パッチが適用されたバージョンとして2.14.0が記録されています。
影響を受けるパッケージ:
- pip (Python) PyJWT: 影響を受けるバージョンは 2.13.0 以下、修正は 2.14.0 で行われました。