何が起きたか
ZipArchive::extract は symlink のリンク先を文字列上だけで検証しているため、展開先の絶対パスを知っている攻撃者は symlink を経由して展開先の外に任意のファイルを書き込めます。Windows ではドライブ名や UNC パスが無視されるため、symlink 1つで別ドライブやリモート共有に書き込めます。あわせて、symlink のサイズ申告を悪用したメモリ確保失敗によるプロセス強制終了と、legacy-zip 機能有効時の ZIP64 サイズ申告による panic の2件の DoS も公表されました。
やること
9.0.0 以降へ更新します。すぐ更新できない場合は、信頼できない ZIP を ZipArchive::extract で展開しないでください。
出典
GitHub Advisory Database(GHSA-hjqx-j4rw-g7xv)github.com英語 ↗GitHub Advisory Database(GHSA-q7v9-x93c-xqv3)github.com英語 ↗GitHub Advisory Database(GHSA-9hj8-73fh-9963)github.com英語 ↗上の要約は通り道編集部がまとめたものです。影響範囲と修正版は必ず各出典で確認してください。