IPBUF安全漏洞报告
English
CVE-2026-33348 CVSS 8.7 高危

CVE-2026-33348 OpenEMR 存储型XSS漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-33348
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
8.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
OpenEMR

相关标签

XSS存储型XSSOpenEMRCVE-2026-33348Web安全医疗信息系统

漏洞概述

OpenEMR在8.0.0.3之前的版本中存在存储型跨站脚本(XSS)漏洞。拥有“Notes - my encounters”角色的用户可以在“Eye Exam”表单中输入恶意脚本。当其他具有相同角色的用户查看该表单答案时,恶意JavaScript代码将被执行,导致攻击者可窃取会话信息或执行恶意操作。

技术细节

该漏洞源于OpenEMR在处理并显示“Eye Exam”表单答案时缺乏充分的输出编码。具体来说,应用程序未对用户提交的特定字段进行安全过滤,直接将数据存储到数据库中并在后续页面渲染。攻击者需具备“Notes - my encounters”角色权限,利用该权限在填写患者就诊的Eye Exam表单时注入恶意JavaScript payload。由于系统未转义特殊字符(如`<script>`标签),当管理员或其他授权用户访问患者 encounter 页面或访问历史记录时,浏览器会解析并执行该恶意脚本。由于是Stored XSS,攻击载荷持久存在于系统中,具有广泛的攻击面和潜在的危害性。

攻击链分析

STEP 1
步骤1:权限获取
攻击者获取一个具有“Notes - my encounters”角色的OpenEMR账户权限。
STEP 2
步骤2:载荷注入
攻击者登录系统,创建或编辑患者就诊记录,并在“Eye Exam”表单字段中输入恶意JavaScript代码。
STEP 3
步骤3:存储数据
系统保存表单数据,将未经过滤的恶意脚本存储在后端数据库中。
STEP 4
步骤4:触发执行
当其他用户(如医生或管理员)访问该患者的就诊页面或查看历史记录时,系统加载并渲染恶意代码,导致脚本在受害者浏览器中执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-33348 Stored XSS in OpenEMR // 1. Login as a user with the 'Notes - my encounters' role. // 2. Navigate to a patient encounter and open the 'Eye Exam' form. // 3. Inject the following payload into a vulnerable input field (e.g., exam notes). var payload = "<script>alert('CVE-2026-33348 XSS');</script>"; // 4. Save the form. // 5. Wait for an administrator or another user with the same role to view the encounter. // 6. The JavaScript will execute in the victim's browser context.

影响范围

OpenEMR < 8.0.0.3

防御指南

临时缓解措施
建议立即升级到修复版本。若暂时无法升级,应严格限制拥有“Notes - my encounters”角色的用户数量,并加强对相关表单提交内容的审核,同时教育用户不要点击可疑链接或查看异常数据。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表