CVE-2026-34084PhpSpreadsheet 是一个用于读写电子表格文件的 PHP 库。在受影响版本中,当 `IOFactory::load()` 的文件名参数由用户控制时,攻击者可利用 PHP 流包装器(如 `phar://`)绕过安全检查,触发反序列化,从而导致远程代码执行或服务端请求伪造。
该漏洞源于 PhpSpreadsheet 的 `File::assertFile()` 方法仅使用 `is_file()` 检查文件路径。攻击者可构造包含 PHP 流包装器(如 `phar://`, `ftp://`, `ssh2.sftp://`)的恶意文件名。当传入 `phar://` 路径时,`is_file()` 返回 true,但在后续的文件操作中,PHP 引擎会解析 PHAR 文件并反序列化其中的元数据。如果应用中存在可用的 gadget chain,攻击者即可触发反序列化攻击,实现远程代码执行。此外,利用 `ftp://` 等协议还可导致服务端请求伪造 (SSRF)。