CVE-2026-25929
MediumCVSS 6.5Exploitation Probability (EPSS)
Low risk23th percentile - higher than 23% of all known CVEs
Summary
OpenEMR is a free and open source electronic health records application. Prior to version 8.0.0, the document controller's patient_picture context serves the patient's photo by document ID or patient ID without verifying that the current user is authorized to access that patient. An authenticated user with document ACL can supply another patient's ID and retrieve their photo.
Risk Assessment
An unauthorized user may access patient photos, breaching medical data confidentiality and potentially leading to legal consequences.
Recommendation
Update OpenEMR to version 8.0.0 or later. Until updated, restrict document ACL permissions.
Other vulnerabilities in OpenEMR
See all- CVE-2017-1000241High
The application OpenEMR versions 5.0.0, 5.0.1-dev and prior is affected by a vertical privilege escalation vulnerability. This vulnerability allows authenticated non-administrator users to view and modify information only accessible to administrators.
- CVE-2017-16540High
OpenEMR versions before 5.0.0 Patch 5 allow unauthenticated remote database copying because setup.php exposes functionality for cloning an existing OpenEMR site to an arbitrary attacker-controlled MySQL server via vectors involving a crafted state parameter.
- CVE-2017-9380High
OpenEMR version 5.0.0 and prior allows low-privilege users to upload files of dangerous types, which can lead to arbitrary code execution within the context of the vulnerable application.
- CVE-2026-102940Critical
Prior to 8.4.0, OpenEMR's controllers/C_Document.class.php write actions, including move_action_process(), do not verify the caller's access to the source document, current patient and category, or destination patient and category before Document::change_patient() performs the mutation. A low-privilege authenticated user can reassign an arbitrary document to a patient or category the user can access and then retrieve it through the normally protected read path.
- CVE-2026-39932Critical
OpenEMR through 8.2.0 contains a remote code execution vulnerability in the document category tree component (library/classes/Tree.class.php) that allows authenticated administrators to execute arbitrary operating system commands by injecting PHP payloads into the categories database table. Attackers can chain arbitrary SQL execution to alter the id column type to VARCHAR and insert a malicious PHP payload, which is then executed via an unsanitized eval() call whenever any page instantiates CategoryTree, including unauthenticated and low-privilege pages, resulting in command execution as the web server user.
- CVE-2026-65983High
In OpenEMR prior to 8.2.0, the fax module (SignalWireClient) decrypts a patient document and writes plaintext bytes under sites/{siteId}/fax, protected only by a predictable uniqid() filename and never removed. An unauthenticated actor who obtains or guesses the URL can retrieve persistent patient documents even with drive encryption enabled.
- CVE-2026-115573High
In OpenEMR before 8.3.0, library/classes/Controller.class.php allows explicit controller.php dispatch to controllers missing from CONTROLLER_ACL_MAP, and checkControllerAcl() returns without enforcing any permission for those entries. A low-privilege authenticated user can invoke C_X12Partner::edit_action_process() to create or alter insurance-routing hosts and credentials, or invoke C_PatientFinder::find_action_process() to enumerate patient names, dates of birth, and identifiers. The shared fail-open dispatcher root cause also exposes other administrative controllers.
- CVE-2026-104139Medium
In OpenEMR before 8.3.0, library/ajax/set_pt.php lets any authenticated user set an arbitrary patient identifier in the session without an ACL check, and download_template.php trusts that value. A low-privilege user can download a rendered document template containing another patient's demographics, encounters, allergies, medications, and problem list.
- CVE-2026-104138Medium
In OpenEMR before 8.3.0, custom/ajax_download.php, custom/download_qrda.php, custom/export_qrda_xml.php, and custom/qrda_download.php validate CSRF but do not enforce the patients/med ACL. They also accept an unscoped report_id, allowing a low-privilege user to download QRDA Category One and Three documents for patients in a measure.
- CVE-2026-104137High
In OpenEMR before 8.3.0, the sms_search branch of interface/main/messages/save.php requires an authenticated session but does not enforce patient or feature-level ACLs. A low-privilege user who cannot access patient data through the normal interface can search the MedEx SMS endpoint and receive patient identifiers, names, phone numbers, SMS permission status, and recent message information.
Original NVD description (English source)
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0, the document controller’s `patient_picture` context serves the patient’s photo by document ID or patient ID without verifying that the current user is authorized to access that patient. An authenticated user with document ACL can supply another patient’s ID and retrieve their photo. Version 8.0.0 fixes the issue.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

