概要
PhpSpreadsheetはPHPでExcel、CSV、ODS等のスプレッドシートファイルを読み書きするためのライブラリで、PHPエコシステムにおけるスプレッドシート処理のデファクトスタンダードです。
本脆弱性は、IOFactory::load()メソッドにおいて、ファイル名パラメータがユーザー制御可能な場合にPHPストリームラッパーを通じて安全でないデシリアライゼーションが発生し、リモートコード実行に至る問題です。ファイルアップロード機能を持つWebアプリケーションでPhpSpreadsheetを使用している場合、攻撃者がファイル名を操作することでサーバー上で任意のコードを実行できます。
PHPエコシステムでの利用範囲が非常に広いため、影響を受けるアプリケーションの数は多い可能性があります。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 9.8 |
| 深刻度 | Critical |
| CWE | CWE-502 (安全でないデシリアライゼーション), CWE-918 (SSRF) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | 不要 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| PhpSpreadsheet | PHPOffice | < 5.6.0 / < 3.10.4 / < 2.4.4 / < 2.1.15 / < 1.30.3 |
修正バージョンと回避策
- 修正バージョン: PhpSpreadsheet 5.6.0 / 3.10.4 / 2.4.4 / 2.1.15 / 1.30.3 にアップデートしてください
- 回避策: IOFactory::load()に渡すファイル名をユーザー入力から直接使用せず、サーバー側で生成したファイルパスのみを使用してください
- 確認方法:
composer show phpoffice/phpspreadsheetでバージョンを確認できます
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
