CVE-2026-33346OpenEMR 8.0.0.2之前的版本存在存储型XSS漏洞。该漏洞位于患者门户支付流程中,允许低权限用户通过`portal/lib/paylib.php`持久化存储任意JavaScript代码。当工作人员在`portal/portal_payment.php`审查支付提交时,恶意脚本将在其浏览器中自动执行,可能导致会话劫持或敏感信息泄露。
该漏洞属于典型的存储型跨站脚本攻击(Stored XSS)。其根本原因是OpenEMR在处理患者门户支付数据时,未对用户提交的输入进行充分的过滤,且在后台页面渲染时未进行HTML实体编码。攻击者首先利用低权限的患者账户登录,通过`portal/lib/paylib.php`接口在支付流程中注入恶意JavaScript代码。该载荷被持久化存储在服务器数据库中。随后,当具有高权限的工作人员访问`portal/portal_payment.php`页面以审核支付记录时,系统会从数据库读取并直接显示该恶意内容,导致载荷在工作人员的浏览器上下文中执行。利用此漏洞,攻击者可窃取管理员的Session ID、Cookie或其他敏感信息,进而接管账户权限。