何が起きたか
ZipArchive はセントラルディレクトリのファイル名だけを見る一方、ZipStreamReader はローカルファイルヘッダーのファイル名を使ってディスクに書き出します。この食い違いを使うと、ZipArchive で検査したときと ZipStreamReader で展開したときで、別のパスと中身に見えるアーカイブを作れます。検査を ZipArchive で行い展開をストリームで行う構成では、検査をすり抜けて任意のファイルを上書きされ、コード実行につながるおそれがあります。
やること
9.0.5 へ更新します。すぐ更新できない場合は、検査と展開で同じ読み取り方式(ZipArchive か ZipStreamReader のどちらか一方)を使うようにしてください。
出典
GitHub Advisory Database(GHSA-m665-v7pm-7grj)github.com英語 ↗上の要約は通り道編集部がまとめたものです。影響範囲と修正版は必ず各出典で確認してください。