IPBUF安全漏洞报告
English
CVE-2026-40296 CVSS 5.4 中危

CVE-2026-40296 PhpSpreadsheet存储型XSS漏洞

披露日期: 2026-05-06

漏洞信息

漏洞编号
CVE-2026-40296
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
PhpSpreadsheet

相关标签

XSS存储型XSSPhpSpreadsheetCWE-79

漏洞概述

PhpSpreadsheet是一个纯PHP库,用于读写电子表格文件。其HTML写入器在单元格的格式化值与原始值不同时,会跳过htmlspecialchars转义。当单元格包含带有文本占位符“@”的自定义数字格式时,格式化程序会用单元格值替换“@”并添加额外字符,导致格式化值与原始值不同,从而完全绕过HTML转义。攻击者若能控制上传电子表格的单元格值和数字格式,且该表格被转换为HTML并展示给其他用户,即可实现存储型跨站脚本攻击。

技术细节

该漏洞源于PhpSpreadsheet的HTML写入器逻辑缺陷。当程序判断单元格的格式化值与原始值不一致时,会错误地跳过HTML特殊字符转义。漏洞触发条件是单元格使用了包含文本占位符“@”的自定义数字格式(例如“. @”、“@ ”)。在此场景下,格式化程序将“@”替换为单元格实际值,并保留格式中的额外字符,导致最终输出包含未经过滤的原始数据。如果应用程序允许用户上传Excel文件,并利用PhpSpreadsheet将其渲染为HTML供其他用户查看,攻击者可通过构造恶意单元格注入JavaScript代码。受害者浏览生成的HTML页面时,恶意脚本将在其浏览器上下文中执行,导致存储型XSS。

攻击链分析

STEP 1
1. 构造恶意文件
攻击者创建一个电子表格文件,设置单元格的数字格式为包含“@”占位符和恶意脚本(如“@<script>...</script>”),并设置单元格值。
STEP 2
2. 上传文件
攻击者将构造好的恶意文件上传到目标Web应用程序。
STEP 3
3. 服务端处理
目标应用程序使用存在漏洞的PhpSpreadsheet库读取上传的文件,并将其转换为HTML格式。由于漏洞,输出的HTML中包含未转义的恶意脚本。
STEP 4
4. 渲染与执行
应用程序将生成的HTML页面返回给其他浏览用户(受害者)。受害者的浏览器解析HTML并执行其中的恶意脚本。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Html; // Initialize Spreadsheet $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // Set a cell value $sheet->setCellValue('A1', '123'); // Set a custom number format containing the '@' placeholder. // The formatter replaces '@' with '123', resulting in a formatted value // that differs from the original, bypassing htmlspecialchars escaping. $sheet->getStyle('A1')->getNumberFormat()->setFormatCode('@<script>alert(1)</script>'); // Generate HTML $writer = new Html($spreadsheet); $writer->save('php://output'); ?>

影响范围

PhpSpreadsheet < 1.30.4
PhpSpreadsheet < 2.1.16
PhpSpreadsheet < 2.4.5
PhpSpreadsheet < 3.10.5
PhpSpreadsheet < 5.7.0

防御指南

临时缓解措施
如果无法立即升级,建议在服务器端对由PhpSpreadsheet生成的HTML内容进行二次净化,确保所有用户输入部分经过了HTML实体编码。同时,限制对电子表格上传功能的访问权限,仅允许受信任的用户上传。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表