CVE-2026-35453该漏洞存在于 PhpSpreadsheet 的 HTML Writer 组件中。当单元格使用包含 '@' 占位符及附加字面文本的自定义数字格式时,程序会跳过 htmlspecialchars() 输出转义。攻击者若能控制被处理表格中的单元格内容,即可利用此漏洞在生成的输出中注入任意 HTML 和 JavaScript 代码,导致存储型 XSS 攻击。此问题影响多个版本分支,已在特定版本中修复。
漏洞根源在于 PhpSpreadsheet 的 HTML Writer 在处理格式化输出时的逻辑缺陷。正常情况下,Writer 应对所有输出进行 HTML 实体转义以防止注入。然而,当格式代码包含 '@'(代表文本占位符)且后跟引号包裹的字面文本(如 `@ "items"`)时,格式化函数会将原始单元格值直接替换到格式字符串中,并提前返回,从而绕过了转义回调函数。这意味着,如果攻击者将恶意的 JavaScript 代码写入单元格,并配合特定的自定义数字格式,导出的 HTML 文件将直接包含未经过滤的恶意脚本,当其他用户在浏览器中查看该文件时,脚本即被执行。