CVE-2026-23873hustoj是一款基于PHP/C++/MySQL/Linux开发的开源在线评测系统,主要用于ACM/ICPC和NOIP竞赛训练。该系统在所有版本中存在严重的CSV Injection(CSV注入,又称Formula Injection公式注入)漏洞。漏洞位于排名导出功能模块(contestrank.xls.php和admin/ranklist_export.php),攻击者可以通过在用户"昵称"(Nickname)字段中注入恶意Excel公式来利用此漏洞。当管理员导出比赛排名并使用Microsoft Excel打开生成的.xls文件时,注入的公式会被自动执行。由于Excel默认启用自动计算功能,恶意公式可以执行任意系统命令,导致攻击者可以在管理员的机器上实现远程代码执行(RCE),或者通过公式窃取敏感数据。这是一个典型的存储型CSV注入漏洞,攻击条件简单但危害极大,CVSS评分高达9.0,属于严重安全漏洞。
该漏洞源于hustoj系统在导出排名数据时未对用户输入进行充分的输入验证和输出编码。漏洞利用过程如下:攻击者首先在个人资料或参赛报名的"Nickname"字段中注入精心构造的Excel公式,常见的payload包括:1)=cmd|' /C calc'!'A1'用于执行系统命令;2)=HYPERLINK()用于数据外传;3)=WEBSERVICE()用于远程获取恶意代码。当管理员登录后台,进入比赛排名管理页面并使用导出功能时,系统将包含恶意公式的数据导出为.xls文件。Excel在打开该文件时会将其解析为HTML表格并自动计算单元格中的公式。由于Excel的公式引擎具有访问文件系统和网络的能力,攻击者可以借此执行任意系统命令、读取本地文件或建立反向shell连接。整个攻击过程无需复杂的交互,但依赖于管理员打开导出的文件这一用户交互环节。攻击者只需拥有普通用户账号即可发起攻击,权限要求低。