CVE-2025-11421CVE-2025-11421是code-projects Voting System 1.0中存在的一个反射型/存储型跨站脚本(XSS)漏洞。该漏洞位于管理后台的候选人编辑页面(/admin/candidates_edit.php)中,具体涉及Firstname(名字)、Lastname(姓氏)和Platform(政纲)三个参数的处理逻辑存在缺陷,未对这些用户可控输入进行充分的过滤或编码处理,导致攻击者可以注入恶意的JavaScript代码或HTML标签。
该漏洞的CVSS 3.1评分为3.5,属于低危级别。漏洞利用需要攻击者拥有低权限账户(如普通管理员或受限用户),并且需要目标用户进行交互(如点击恶意链接或访问被注入的页面)。尽管严重程度较低,但由于该漏洞已被公开披露且存在可用的利用代码,仍然对使用该投票系统的组织构成一定的安全风险。攻击者可以利用此漏洞窃取管理员会话Cookie、篡改页面内容、进行钓鱼攻击或在受害者浏览器中执行任意JavaScript代码。
值得注意的是,该漏洞的利用需要满足两个前提条件:一是攻击者需要拥有系统的合法账户(低权限),二是需要受害者进行交互操作。这在一定程度上限制了漏洞的传播范围和危害程度。然而,对于部署了该系统的组织而言,及时修复仍然是必要的,因为XSS漏洞常常被用作更复杂攻击链的第一步。
该XSS漏洞的根本原因在于code-projects Voting System 1.0的/admin/candidates_edit.php文件在处理候选人编辑请求时,未对Firstname、Lastname和Platform三个参数进行适当的输入验证和输出编码。当管理员或具有相应权限的用户提交候选人编辑表单时,这些参数的值会直接被存储到数据库中,并在后续页面渲染时未经HTML实体编码直接输出到HTML页面中。
从技术层面分析,漏洞的利用过程如下:攻击者首先需要通过合法途径获取系统的低权限账户(PR:L),然后登录系统并导航到候选人编辑页面。在编辑候选人信息时,攻击者在Firstname、Lastname或Platform字段中注入恶意JavaScript代码,例如:<script>alert(document.cookie)</script>或<img src=x onerror=alert(1)>。这些恶意输入被保存到数据库后,当其他用户(尤其是管理员)查看候选人列表或详情页面时,恶意脚本将在受害者浏览器中执行。
由于漏洞利用需要用户交互(UI:R),攻击者通常需要构造特定的钓鱼场景,例如通过电子邮件或即时消息发送包含恶意链接的页面,诱导受害者点击。由于该漏洞已被公开披露(参考链接中包含GitHub上的issue),存在公开的PoC代码可供利用,进一步降低了攻击门槛。建议管理员及时更新系统或应用相应的安全补丁以修复此漏洞。