注目★★★★★GitHub Advisory
PHPSpreadsheet、CVE-2026-34084パッチをバイパスするRCE脆弱性CVE-2026-45034
30秒で把握
- 1CVE-2026-45034: PHPSpreadsheetのphar://三重スラッシュでRCEパッチ回避
- 2PHP 7.xはis_file到達だけでRCE・PHP 8.xはgetMetadata呼び出し時にRCE
- 3CVE-2026-34084修正のprohibitWrappersが無効化・全最新6バージョンが対象
要約
PHPSpreadsheetにおいて、CVE-2026-34084の修正パッチを回避できる新たな脆弱性CVE-2026-45034が公開された。`File::prohibitWrappers`ヘルパーはスキーム後にスラッシュが3つ以上ある`phar:///path/file.phar`形式の入力で`parse_url`がfalseを返すため、ラッパー検査をスキップしてpharストリームを通過させてしまう。PHP 7.xでは`is_file`経由でpharメタデータが自動デシリアライズされ、`__wakeup`・`__destruct`が呼び出されてRCEが成立する。PHP 8.xでは自動デシリアライズが廃止されたためファイル読み取りプリミティブに留まるが、下流コードが`Phar::getMetadata`を呼び出す場合はRCEが再浮上する。
あなたへの影響
PHPSpreadsheetを本番環境で利用しているチームは、vendorディレクトリの`File.php`が脆弱バージョンであるか即日確認し、修正済みバージョンへのアップグレードと`IOFactory::load`に渡すパスの入力検証を今週中に実施すること。
推奨:PHP 7.x環境では攻撃者制御のpharファイルを読ませるだけでRCEに至り得るため、優先度は高い。