CVE-2026-126460
Awaiting Analysis Awaiting Analysis - Queue

OpenEMR Persistent SQL Injection via X12 835 ERA File

Vulnerability report for CVE-2026-126460, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-11-13

Last updated on: 2026-11-13

Assigner: VulnCheck

Description

OpenEMR before 8.5.0 contains a persistent SQL injection vulnerability in SLEOB::slInvoiceNumber(), where the CLP01 claim control number from uploaded X12 835 ERA files is concatenated unescaped into a query. Attackers with billing write access can upload a crafted .edi file via sl_eob_search.php that is stored on the server and re-executes a time-based payload whenever it is reprocessed through sl_eob_process.php, extracting patient health information.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-11-13
Last Modified
2026-11-13
Generated
2026-11-13
AI Q&A
2026-11-13
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
openemr openemr to 8.5.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-89 The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

OpenEMR before version 8.5.0 has a persistent SQL injection flaw in the SLEOB::slInvoiceNumber() function. The vulnerability occurs when the CLP01 claim control number from X12 835 ERA files is added to a database query without proper escaping. Attackers with billing write access can upload a malicious .edi file via sl_eob_search.php. This file is stored on the server and later reprocessed through sl_eob_process.php, where a time-based payload executes again, allowing extraction of patient health information.

Detection Guidance

Check OpenEMR logs for suspicious .edi file uploads via sl_eob_search.php and subsequent processing in sl_eob_process.php. Monitor database queries for time-based payloads or unusual activity in SLEOB::slInvoiceNumber().

Inspect uploaded X12 835 ERA files for malformed CLP01 claim control numbers. Use network traffic analysis to detect repeated requests to sl_eob_process.php.

Impact Analysis

If you use OpenEMR versions before 8.5.0 and have billing write access, an attacker could exploit this to steal patient health information. The attack involves uploading a crafted file that later executes malicious SQL queries when reprocessed, potentially exposing sensitive data like medical records.

Compliance Impact

This vulnerability could lead to unauthorized access to patient health information, violating HIPAA's requirements for protecting electronic protected health information (ePHI). It may also result in GDPR non-compliance due to unauthorized data access and potential breaches of personal data, leading to legal penalties and reputational damage.

Mitigation Strategies

Upgrade OpenEMR to version 8.5.0 or later to patch the SQL injection flaw in SLEOB::slInvoiceNumber().

Restrict write access to billing functions to trusted users only. Review and sanitize all uploaded .edi files before processing.

Implement input validation for CLP01 claim control numbers in X12 835 ERA files. Monitor database activity for unauthorized queries.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-126460. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...