影響: Undiciのキャッシュインターセプターは、アップストリームのCache-Controlヘッダーが空白を含む修飾付きのprivateまたはno-cacheフィールド名(例: private=" authorization"やno-cache="\tauthorization")を使用している場合、一部のレスポンスを誤ってキャッシュ可能として分類します。パーサーは周囲の空白を保持するため、その後のリテラルなauthorizationフィールド名との比較で失敗し、レスポンスがキャッシュされてしまいます。共有キャッシュモードでは、これにより1人のユーザーの認証されたデータを含むレスポンスが、同じキャッシュキーに解決される後続の呼び出し、未認証の呼び出しを含む、にキャッシュから提供される可能性があります。影響を受けるアプリケーションは、共有モードでキャッシュインターセプター(interceptors.cache())を明示的に有効化し、Authorizationヘッダーをアップストリームに転送し、非標準的な修飾付きprivateまたはno-cacheディレクティブを含むキャッシュ可能なレスポンスを受け取るものです。修正: undiciをv7.28.0またはv8.5.0にアップグレードしてください。回避策: すぐにアップグレードが不可能な場合は、Authorizationヘッダーを含むトラフィックに対して共有キャッシュモードを無効化する、認証済みリクエストへのレスポンスをキャッシュしない、またはアップストリームにVary: Authorizationを追加してください。
|