Description
OpenEMR before 8.4.0 contains a local file inclusion in the ESign router (library/ESign/Router.php), which passes the unsanitized module parameter into a require_once of '<module>/Controller.php', and the fax module's faxProcessUploads writes attacker-named files to a predictable temp path without extension checks. Authenticated attackers can upload a PHP file named Controller.php, then request interface/esign/index.php with a traversing module parameter to include it and execute arbitrary code.
Published: 2026-11-08
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

OpenEMR versions prior to 8.4.0 contain a local file inclusion flaw in the ESign router module. Unsanitized input from the 'module' parameter is passed directly into a require_once that reaches to '<module>/Controller.php'. The fax upload feature writes attacker‑controlled files to a predictable temporary location without validating extensions or names. An authenticated user can therefore upload a file named Controller.php, craft a request to interface/esign/index.php with a traversing value for the module parameter, and force the application to include the malicious file, enabling arbitrary PHP code execution. The flaw grants the attacker full code execution privileges within the web server context and can compromise confidentiality, integrity, and availability of the underlying system. The CVSS base score of 8.7 confirms the severity of this exploitation.

Affected Systems

Impacting all OpenEMR deployments running a version older than 8.4.0. The modification applies to the core OpenEMR product provided by the openemr vendor. No specific build numbers are listed, so any installation built before the 8.4.0 release is considered vulnerable. Organizations should verify the installed OpenEMR version and assess whether the vulnerable fax upload or ESign functionality remains enabled.

Risk and Exploitability

With a CVSS score of 8.7 the vulnerability is classified as high severity, and it is not yet tracked in the CISA KEV catalog. Since the attack requires authentication and an ability to upload files, the risk is mitigated by limiting those privileges. However, once the permissions are available the exploitation path is straightforward due to the lack of input validation and directory traversal protection. An attacker can then execute arbitrary PHP code, potentially taking over the web application or the entire host, depending on the server's configuration. Monitoring for unusual file uploads and access patterns remains a useful defensive technique until a patch is applied.

Generated by OpenCVE AI on November 8, 2026 at 14:44 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade OpenEMR to version 8.4.0 or later, which removes the unsanitized module parameter and the faulty fax upload handling.
  • Restrict the fax upload functionality to trusted users and enforce strict file type validation to disallow PHP or executable extensions.
  • Disable or remove the ESign module if it is not required, or ensure the module parameter is validated against a whitelist of allowed modules to prevent directory traversal attacks.

Generated by OpenCVE AI on November 8, 2026 at 14:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 08 Nov 2026 13:30:00 +0000

Type Values Removed Values Added
Description OpenEMR before 8.4.0 contains a local file inclusion in the ESign router (library/ESign/Router.php), which passes the unsanitized module parameter into a require_once of '<module>/Controller.php', and the fax module's faxProcessUploads writes attacker-named files to a predictable temp path without extension checks. Authenticated attackers can upload a PHP file named Controller.php, then request interface/esign/index.php with a traversing module parameter to include it and execute arbitrary code.
Title OpenEMR before 8.4.0 Remote Code Execution via ESign LFI and fax upload
First Time appeared Open-emr
Open-emr openemr
Weaknesses CWE-22
CPEs cpe:2.3:a:open-emr:openemr:*:*:*:*:*:*:*:*
Vendors & Products Open-emr
Open-emr openemr
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Open-emr Openemr
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-11-08T13:15:51.909Z

Reserved: 2026-11-08T02:16:30.558Z

Link: CVE-2026-124467

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-08T14:18:14.823

Modified: 2026-11-08T14:18:14.823

Link: CVE-2026-124467

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-08T16:15:14Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')