CVE-2026-34053
Received Received - Intake
Authorization Bypass in OpenEMR Procedure Order Deletion Endpoint

Publication date: 2026-03-26

Last updated on: 2026-03-26

Assigner: GitHub, Inc.

Description
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0.3, missing authorization in the AJAX deletion endpoint `interface/forms/procedure_order/handle_deletions.php` allows any authenticated user, regardless of role, to irreversibly delete procedure orders, answers, and specimens belonging to any patient in the system. Version 8.0.0.3 patches the issue.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-03-26
Last Modified
2026-03-26
Generated
2026-05-07
AI Q&A
2026-03-26
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
open-emr openemr to 8.0.0.3 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
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.

Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart