CVE-2026-25745OpenEMR是一款免费开源的电子健康记录(EHR)和医疗实践管理应用程序,广泛应用于医疗机构进行患者信息管理和医疗流程自动化。该应用在版本8.0.0及以前存在一个严重的安全漏洞,漏洞位于消息/笔记更新功能端点。由于程序在处理更新请求时,仅根据消息ID进行操作,而未验证该消息是否属于当前登录用户所属的患者,或者用户是否具有编辑该患者笔记的权限,导致任何获得认证且拥有笔记权限的低权限用户,可以通过修改请求中的消息ID,非法访问和篡改其他患者的敏感医疗信息。此漏洞属于典型的IDOR(Insecure Direct Object Reference)类型安全缺陷,攻击者无需特殊权限即可利用,对患者隐私数据完整性造成严重威胁。
漏洞根源在于OpenEMR的消息更新API端点(如PUT或POST方法)在处理用户请求时,直接使用客户端提供的消息ID进行数据库操作,而缺少必要的业务逻辑验证。具体流程如下:1) 攻击者首先使用合法账号登录系统,该账号只需具备基本的笔记权限;2) 系统正常获取当前患者A的消息列表;3) 攻击者通过API请求修改患者B的消息记录,方法是将请求中的message_id参数替换为患者B的消息ID;4) 服务器端未验证message_id与当前会话用户/患者的从属关系,直接执行更新操作;5) 患者B的消息内容被成功篡改。漏洞利用的关键在于API缺少对象级别的访问控制检查,攻击者通过猜测或枚举其他患者的消息ID即可实施攻击。此漏洞可能导致的危害包括:篡改患者病历信息、删除重要医疗记录、伪造医嘱内容等,对医疗安全构成严重威胁。