CVE-2026-34053
Authorization Bypass in OpenEMR Procedure Order Deletion Endpoint
Publication date: 2026-03-26
Last updated on: 2026-03-26
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| open-emr | openemr | to 8.0.0.3 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-862 | The product does not perform an authorization check when an actor attempts to access a resource or perform an action. |
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability allows any authenticated user to irreversibly delete or soft-delete procedure orders, answers, and specimens belonging to any patient without proper authorization checks.
This unauthorized deletion of patient clinical data can lead to data integrity violations and disruption of clinical workflows, which may result in non-compliance with regulations such as HIPAA that require protection of patient health information and data integrity.
Although confidentiality impact is rated as none, the high integrity impact and potential loss of critical patient data could violate regulatory requirements for safeguarding electronic health records.
Can you explain this vulnerability to me?
CVE-2026-34053 is a missing authorization vulnerability in OpenEMR, an open source electronic health records system. Before version 8.0.0.3, the AJAX deletion endpoint at `interface/forms/procedure_order/handle_deletions.php` allowed any authenticated user, regardless of their role or privileges, to delete procedure orders, procedure answers, and specimens belonging to any patient.
The vulnerability exists because the deletion handler requires only a valid CSRF token and an authenticated session but does not perform any authorization checks to verify user roles or whether the data belongs to the current user. This flaw enables users with minimal privileges to irreversibly delete clinical procedure data for any patient.
Technically, the deletion functions accept identifiers like `order_id` or `specimen_id` which are sequential and easily enumerable, making it trivial for an attacker to target arbitrary records. Unlike other similar endpoints that enforce admin or superuser privileges, this handler lacks such controls.
How can this vulnerability impact me? :
This vulnerability can have serious impacts including unauthorized deletion of critical clinical procedure data such as procedure orders, answers, and specimens for any patient in the system.
Because any authenticated user can perform these deletions without proper authorization, it constitutes a privilege escalation and cross-patient data integrity violation.
The deletion of procedure data can disrupt clinical workflows and patient care by removing essential medical records irreversibly or soft-deleting specimens, potentially leading to loss of important health information.
The vulnerability has a high severity rating with a CVSS v3.1 base score of 7.1, indicating a significant risk with low attack complexity and no user interaction required.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by monitoring for unauthorized POST requests to the endpoint `/interface/forms/procedure_order/handle_deletions.php` that include parameters such as `action=delete_procedure` or `action=delete_specimen` along with `order_id`, `order_seq`, or `specimen_id`.
Since the vulnerability allows any authenticated user to delete procedure orders or specimens without proper authorization, detection can involve checking server logs or web application firewall (WAF) logs for suspicious POST requests to this endpoint from users with low privileges.
Suggested commands to detect such activity include:
- Using grep on web server logs to find suspicious POST requests: `grep 'POST /interface/forms/procedure_order/handle_deletions.php' /var/log/apache2/access.log`
- Filtering for deletion actions in logs: `grep -E 'action=delete_procedure|action=delete_specimen' /var/log/apache2/access.log`
- Monitoring database changes to `procedure_order`, `procedure_answers`, and `procedure_specimen` tables for unexpected deletions or soft deletes.
Additionally, capturing and analyzing CSRF tokens usage and verifying if users without admin privileges are performing deletions can help detect exploitation attempts.
What immediate steps should I take to mitigate this vulnerability?
The immediate mitigation step is to upgrade OpenEMR to version 8.0.0.3 or later, where this vulnerability is patched by enforcing proper authorization checks and CSRF token verification.
If upgrading immediately is not possible, restrict access to the vulnerable endpoint `/interface/forms/procedure_order/handle_deletions.php` to only trusted administrative users, for example by applying web server access controls or network segmentation.
Additionally, monitor and audit user activities for unauthorized deletion attempts and consider temporarily disabling or restricting the affected AJAX deletion functionality.
The patch includes:
- Verification of CSRF tokens using `CsrfUtils::verifyCsrfToken()`.
- Enforcement of access control by checking if the user has admin or superuser privileges via `AclMain::aclCheckCore('admin', 'super')`.
- Denying access with a standardized JSON response if authorization fails.