Openemr
CVE-2026-25147
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as valid portal user
-
ExploitSubmit crafted request with malicious pid parameter
-
ExecutionOverride authenticated patient id
-
ImpactAccess another patient's medical records
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Authenticated OpenEMR patient portal user account required. Vulnerable versions prior to 8.0.0. Portal session active with valid credentials. Attacker must be logged into portal as any legitimate patient to manipulate pid parameter in portal_payment.php requests. |
| Impact | CVSS 7.1 (HIGH). Attack vector: Network. Complexity: Low. Privileges required: Low. User interaction: None. Exploitation no authentication required. Public exploit/POC available. |
| Exploit ScenarioDerived | An attacker without authentication could exploit this vulnerability to compromise the affected system. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 12, 2026
OpenEMR versions prior to 8.0.0 allow authenticated portal users to access other patients' protected health information through insecure direct object references (IDOR) in the payment portal, enabling horizontal privilege escalation to view and modify another patient's demographics, invoices, and payment history. The vulnerability stems from accepting patient ID values from user-controlled request parameters instead of validating against the authenticated user's session. Public exploit code exists for this vulnerability.
Earlier versions of this analysis (1)
Openemr versions up to 8.0.0 is affected by authorization bypass through user-controlled key (CVSS 7.1).
RemediationAI
A vendor patch is available — apply it immediately. Restrict network access to the affected service where possible.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This vulnerability (CWE-639: Authorization Bypass Through User-Controlled Key) affects Openemr. OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0, in portal/portal_payment.php, the patient id used for the page is taken from the request ($pid = $_REQUEST['pid'] ?? $pid and $pid = ($_REQUEST['hidden_patient_code'] ?? null) > 0 ? $_REQUEST['hidden_patient_code'] : $pid) instead of being fixed to the authenticated portal user. The portal session already has a valid $pid for the logged-in patient. Overwriting
Know when Openemr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0, in portal/portal_payment.php, the patient id used for the page is taken from the request ($pid = $_REQUEST['pid'] ?? $pid and $pid = ($_REQUEST['hidden_patient_code'] ?? null) > 0 ? $_REQUEST['hidden_patient_code'] : $pid) instead of being fixed to the authenticated portal user. The portal session already has a valid $pid for the logged-in patient. Overwriting it with user-supplied values and using it without authorization allows a portal user to view and interact with another patient's demographics, invoices, and payment history-horizontal privilege escalation and IDOR. Version 8.0.0 contains a fix for the issue.
Executive ViewAI
OpenEMR installations prior to version 8.0.0 contain a critical authorization flaw allowing attackers to access other patients' payment information through parameter manipulation. This directly threatens patient privacy compliance (HIPAA/GDPR), exposes sensitive financial data, and creates significant liability for healthcare organizations using affected versions.
Apply vendor patch. If patching cannot be completed within 7 days: (1) Implement WAF rules to block requests containing 'pid' or 'hidden_patient_code' parameters in portal_payment.php requests; (2) Restrict portal payment feature access to authenticated sessions only via network segmentation; (3) Disable patient payment portal functionality until patched; (4) Enable comprehensive audit logging on portal access and correlate with patient sessions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Affected Products (CPE)GitHub Advisory
An authenticated SQL injection vulnerability exists in OpenEMR ≤ 4.1.1 Patch 14 that allows a low-privileged attacker to
Unauthenticated token disclosure in OpenEMR before 8.0.0. CVSS 10.0. PoC and patch available.
Path traversal in OpenEMR 7.0.4 disposeDocument() allows file access. PoC available.
Path traversal in OpenEMR electronic health records before fix allows authenticated users to read arbitrary files on the
SQL injection in OpenEMR electronic health records before fix. Authenticated users can execute arbitrary SQL through the
OpenEMR 7.0.2 is vulnerable to SQL Injection via \openemr\library\classes\Pharmacy.class.php, \controllers\C_Pharmacy.cl
An issue in OpenEMR 7.0.2 allows a remote attacker to escalate privileges viaa crafted POST request using the noteid par
Information disclosure in OpenEMR 5.0.2 to before 8.0.0 exposes sensitive data. PoC and patch available.
Remote code execution in OpenEMR through 8.2.0 lets an authenticated administrator poison the document category tree so
interface/fax/fax_dispatch.php in OpenEMR 4.1.0 allows remote authenticated users to execute arbitrary commands via shel
interface/globals.php in OpenEMR 2.x, 3.x, and 4.x before 4.2.0 patch 2 allows remote attackers to bypass authentication
Authentication bypass vulnerability in portal/account/register.php in versions of OpenEMR before 5.0.1.4 allows a remote
NVD
CVE.org
EPSS
GitHub
Exploit-DB