GitHubのAdvisory Databaseで、fast-uriのURI解釈や出力に関する脆弱性3件が公表されています。参照先や接続先の判定が変わるほか、一部の使い方ではブラウザー上で不正なスクリプトが動くXSSにつながる恐れがあります。3件とも、修正版として2.4.8、3.1.9、4.2.3が案内されています。
修正版は共通、影響は使い方で異なる
URIは、接続先や参照先を表す文字列です。今回の3件は、fast-uriがその文字列を整えたり、読み取ったり、出力したりする処理に関わります。利用版だけでなく、アプリがどの処理を使っているかを確認する必要があります。
ホスト解釈の欠陥「CVE-2026-110180」で示された対象版は、2系が2.4.2~2.4.7、3系が3.1.3~3.1.8、4系が4.0.1~4.2.2です。この範囲は同欠陥の条件であり、ほかの2件の対象範囲と混同しないようにします。
資料では公表日を確認できません。日本での提供は発表には書かれていません。
参照先・接続先・出力の3か所を確認
相対参照の正規化に関する「CVE-2026-110095」では、表記を整えるnormalize()と、文字列にするserialize()が相対パスを不適切に処理します。先頭の「..」が失われ、参照先が変わる恐れがあります。equal()も、異なる参照を同じものと判定する可能性があります。
特に確認したいのは、正規化した入力を解決する処理や、アクセスを許可する認可の判定、キャッシュの識別用キーに使う処理です。回避策は、相対参照を基準となる絶対URIに対して解決し、その結果を正規化することです。
「CVE-2026-110180」は、http、https、ws、wssと、domainHost: trueを指定したスキームが対象です。複数の「@」や、タブ・改行などの制御文字であるTAB・CR・LFを含むホストが、エラーなしに書き換わります。その結果、ホスト検査と実際の接続先が食い違い、意図しない宛先へ誘導される恐れがあります。
回避策は、呼び出し前にauthority部分にある複数の「@」やTAB・CR・LFを拒否することです。authorityは、ホストなどを含む部分を指します。parse()のエラーを処理継続できないものとして扱い、同じ解析結果でホストを比較する方法も示されています。
URI出力の「CVE-2026-110725」は、非既定のreference: 'suffix'を使うアプリに限られます。authorityのない参照で、先頭パス要素のコロンがエスケープされず、出力がjavascript:などのURIとして再解釈される恐れがあります。信頼できない入力では同オプションを使わないことが回避策です。出力が必要な場合は、URIとして扱う前に該当するコロンをパーセント符号化します。
影響する会社・しない会社
- 影響する: fast-uriの相対参照の処理結果を、参照先の解決、認可、キャッシュのキーに使う会社です。関数の呼び出し方を確認する必要があります。
- 影響する: CVE-2026-110180の対象版で、httpなどの対象スキーム、またはdomainHost: trueを使う会社です。接続先の検査処理が確認対象になります。
- 影響する: 非既定のreference: 'suffix'を使うアプリを運用する会社です。特に、信頼できない入力から作った出力をURIとして扱う箇所を確認します。
- 影響しない: reference: 'suffix'を使わないアプリは、CVE-2026-110725の影響対象ではありません。ただし、ほかの2件まで対象外になるわけではありません。
- 影響しない: 修正版の2.4.8、3.1.9、4.2.3では、今回の3件は修正されています。