影響: undiciのcookieパーサーであるparseSetCookieは、qsUnescapeを介してcookie値のパーセントデコードを行い、%0D%0A、%00、%3B、および%3Dのようなエンコードされたシーケンスを対応するバイト値に変換します。RFC 6265 §5.4ではデコードに関して指定されておらず、ブラウザもデコードしません。 Set-Cookieヘッダーを解析し、その解析結果の値をレスポンスヘッダーに転送するアプリケーション(プロキシ、ミドルウェア、SSRフレームワークなど)は、HTTPレスポンスヘッダーインジェクションの脆弱性を負います。攻撃者が制御する上流から任意のSet-Cookie、Location、Cache-Controlヘッダーをアプリケーションの下流のレスポンスに注入でき、セッションフィクセーション、オープンリダイレクト、キャッシュポイズニングを可能にします。 影響を受けるアプリケーションは、undiciのcookieパース(parseSetCookie、parseCookie、getSetCookies)を使用し、解析済みのcookie値をレスポンスヘッダーに転送するものです。 この脆弱性はundici 7.0.0でPR #3789により導入されました。 パッチ: undici v6.26.0、v7.28.0、またはv8.5.0にアップグレードしてください。 回避策: すぐにアップグレードできない場合は、parseSetCookie/parseCookie/getSetCookiesが返す値をそのままレスポンスヘッダーに転送せず、CR、LF、NUL、;、=のバイトを除去または拒否するよう値をサニタイズしてください。
|