漏洞关键信息 漏洞类型: CSV Injection (Formula Injection) CVE ID: CVE-2026-23873 CVE: CWE-1236 受影响组件: zhblue/hustoj (Composer) 受影响版本: All versions 修复版本: None 严重性: High 漏洞描述 Summary: 存在一个 CSV Injection (Formula Injection) 漏洞,影响 contest rank export 功能 (contestrank.xls.php 和 admin/ranklist_export.php)。应用程序在导出为 .xls 文件(由 Excel 打开时为 HTML 表格)之前未对用户提供的输入(尤其是 "Nickname" 字段)进行清理。 Impact: 如果恶意用户将他们的昵称设置为 Excel 公式(如,=cmd 复现步骤 1. 注册一个新用户帐户。 2. 前往 "User Info" 并将昵称更改为恶意负载: =cmd 3. 提交任何比赛的解决方案,确保用户出现在排名列表中。 4. 以管理员身份登录。 5. 前往比赛页面并点击 "Export"(或下载 contestrank.xls.php)。 6. 在 Microsoft Excel 中打开下载的文件。 7. 观察计算器应用程序启动(或根据 Excel 设置触发安全警告)。 建议修复 在"data"开始具有公式触发的情况下,通过在输出前添加单引号进行清理。 ```php $nick = $row['nick']; if (preg_match('/^[=+-@]/', $nick)) { $nick = "'". $nick; } echo "" . htmlspecialchars($nick);