RustSecは10月26日、pingora-coreのRUSTSEC-2026-0388を発行した。報告日は10月20日、別名はCVE-2026-105298とGHSA-mgg9-6xw2-jfgpだ。影響は0.9.0未満で、CVSS 4.0は6.3、攻撃に追加の条件がある中程度の評価である。
0.9.0より前は、Hostヘッダが:authority疑似ヘッダと異なるHTTP/2リクエストを受理した。session.req_header().uriを読むフィルタ、キャッシュキー、ログは:authorityを見る。上流が受け取るのは、クライアントが付けたHostだ。userinfoを含む:authorityも受理しており、仲介者が:authorityをHostとして使い、既存のHostを置き換えるというRFC 9113の8.3.1節に反する。
認証のない遠隔の攻撃者は、1本のHTTP/2で、アプリケーションが見るホストと上流が受けるホストをずらせる。URIのauthorityでフィルタやキャッシュを決め、上流がHostで振り分ける構成では、別の仮想ホストの応答が被害側のキャッシュキーに保存され、他の利用者へ配られる。あるホスト向けに通した要求が、上流の別の仮想ホストで処理される迂回も起きる。クライアントからHTTP/2を受けない、またはauthorityをセキュリティやキャッシュの判断に使わないデプロイは影響しない。
修正後は、Hostの不一致、Hostが複数、authorityにuserinfoがあるHTTP/2を400で拒否し、上流側の値をリクエストのauthorityと揃える。更新先は0.9.0以上だ。CloudflareのCDN利用者は影響しない。同社内部のPingoraはHTTP/2のクライアントを持たない。自前のプロキシでHTTP/2を外から受けている場合が確認対象になる。