undiciは、Node.js向けのHTTPクライアントライブラリです。バージョン7.15.0から7.30.0、および8.0.0から8.12.1において、fetch()の実装では、Subresource Integrity(SRI)のメタデータを検証する際に、アルゴリズムのトークンを小文字のみの文字列セットと比較します。SRIの仕様では、トークンはASCII小文字で定義されていますが、大文字または混合文字を含む有効なトークン(例えば、大文字または混合文字のSHA256)は、不明とみなし、無視されます。認識可能なアルゴリズムが残っていない場合、undiciは整合性リストを空とみなし、レスポンスを受け入れます。したがって、ピン留めされた整合性情報と一致しないコンテンツを返すサーバーは、検証を通過してしまいます。攻撃者がレスポンスの本文のみを制御できる場合、有効な大文字または混合文字のSRIトークンをピン留めしたアプリケーションに対して、攻撃者が制御するバイトをエラーなしで配信することができ、これにより、レスポンスの整合性のみに影響が及ぶ可能性があります。この問題は、undiciのバージョン7.30.1および8.12.2で修正されており、検証前にアルゴリズムのトークンをASCII小文字に変換します。ユーザーは、これらのバージョン以降にアップグレードするか、回避策として、整合性メタデータでsha256、sha384、またはsha512などの小文字のアルゴリズムトークンを使用してください。

CVSS 3.1: 7.5 (高) (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N)