Openemr
CVE-2026-33918
HIGH
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
Lifecycle Timeline
2DescriptionGitHub Advisory
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0.3, the billing file-download endpoint interface/billing/get_claim_file.php only verifies that the caller has a valid session and CSRF token, but does not check any ACL permissions. This allows any authenticated OpenEMR user - regardless of whether they have billing privileges - to download and permanently delete electronic claim batch files containing protected health information (PHI). Version 8.0.0.3 patches the issue.
AnalysisAI
Improper access control in OpenEMR versions prior to 8.0.0.3 allows any authenticated user to download and permanently delete electronic claim batch files containing protected health information (PHI) via the billing file-download endpoint, regardless of whether they have billing privileges. The vulnerability has a 7.6 CVSS score with low attack complexity and requires only low-level authentication. EPSS exploitation probability is 0.03% (8th percentile), indicating low observed targeting in real-world exploitation at time of analysis, and no public exploit has been identified.
Technical ContextAI
The vulnerability affects OpenEMR (cpe:2.3:a:openemr:openemr:*:*:*:*:*:*:*:*), a web-based electronic health records and medical practice management application written in PHP. The root cause is CWE-862 (Missing Authorization), where the interface/billing/get_claim_file.php endpoint validates session tokens and CSRF protections but fails to implement role-based access control checks to verify billing privileges. This creates a horizontal privilege escalation scenario where any authenticated user, regardless of assigned role or ACL permissions, can access functionality intended exclusively for billing-privileged accounts. The endpoint processes electronic claim batch files that inherently contain sensitive protected health information, and the vulnerability permits both unauthorized disclosure (confidentiality impact) and permanent deletion (integrity and availability impacts).
RemediationAI
Upgrade OpenEMR to version 8.0.0.3 or later, which implements proper ACL permission checks on the billing file-download endpoint (release details at https://github.com/openemr/openemr/releases/tag/v8_0_0_3). The specific authorization fix is documented in commit f6d98d0102df0a8f131be560d9208fb65fba6188 at https://github.com/openemr/openemr/commit/f6d98d0102df0a8f131be560d9208fb65fba6188. Until patching is completed, organizations should implement compensating controls including restricting OpenEMR user account creation to only necessary personnel, conducting audit log reviews of the interface/billing/get_claim_file.php endpoint for unauthorized access attempts, implementing file integrity monitoring on claim batch directories to detect unauthorized deletions, and considering web application firewall rules to restrict access to the billing interface paths based on source IP or additional authentication factors. Organizations subject to HIPAA should evaluate whether unauthorized PHI access constitutes a reportable breach based on their specific user access patterns.
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.
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
OpenEMR 5.0.0 and prior allows low-privilege users to upload files of dangerous types which can result in arbitrary code
Same weakness CWE-862 – Missing Authorization
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today