CVE-2026-32120OpenEMR在8.0.0.3版本之前存在不安全的直接对象引用(IDOR)漏洞。由于费用清单保存逻辑未验证记录归属,拥有费用清单权限的攻击者可通过修改隐藏字段,任意删除、修改或读取其他患者的药品销售记录,严重影响数据完整性。
该漏洞源于OpenEMR在处理费用清单保存逻辑时缺乏充分的权限验证。具体而言,受影响文件`library/FeeSheet.class.php`中的`save()`方法直接接收并利用了用户提供的`prod[][sale_id]`参数。系统未对该参数对应的`drug_sales`记录是否归属于当前登录用户所负责的患者或当前就诊流程进行校验。因此,攻击者可以利用这一缺陷,通过构造包含恶意`sale_id`的HTTP POST请求,触发后端数据库的SELECT、UPDATE或DELETE操作。这使得经过身份验证但权限受限的攻击者能够绕过业务逻辑限制,对系统中任意患者的药品销售记录进行查看、篡改甚至删除,造成严重的数据完整性破坏。