undiciにおいて、インターセプターの機能に起因するクロスオリジンキャッシュ汚染の脆弱性が存在します。
## 影響
`interceptors.cache()`または`interceptors.deduplicate()`が、単一の信頼できるオリジンを持たないディスパッチャと共に使用される場合、またはリクエストが独自の`origin`を提供する場合、undiciは実際の宛先オリジンを含まずに、キャッシュと重複排除のキーを構築します。キャッシュストアまたはインターセプターのインスタンスが複数のオリジンで共有されている場合、異なるオリジンからの同一のリクエストが同じキーで扱われます。
あるオリジンを制御する攻撃者が、そのオリジンからのレスポンスを、メソッド、パス、および関連するヘッダーが一致する場合、別の信頼できるオリジンからのリクエストに対して返却させることが可能になります。これにより、クロスオリジン情報の漏洩や、永続的なキャッシュ汚染が発生する可能性があります。例えば、攻撃者が保持するキーで署名されたトークンが、信頼できる発行元からのものとして受け入れられるような、JWKSキャッシュ汚染の連鎖が発生する可能性があります。
`interceptors.cache()`または`interceptors.deduplicate()`の状態をオリジン間で共有しているアプリケーションが影響を受けます。`Agent`は影響を受けません。なぜなら、そのディスパッチオプションにはリクエストのオリジンが含まれているからです。
この問題は、undici 8.10.0で導入され、8.10.0および8.10.1に影響を与えます。
## 修正
undiciをバージョン8.10.2にアップグレードしてください。
## 対策
各オリジンに対して、個別のキャッシュストアと個別のインターセプターインスタンスを使用し、それらをオリジン間で共有しないでください。
影響を受けるパッケージ:
- npm (JavaScript) undici: 影響範囲は8.10.0以上、8.10.2未満。8.10.2で修正済み。