{"id":"CVE-2026-124467","published":"2026-11-08T14:18:14.823","lastModified":"2026-11-10T21:46:25.083","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.","cvssScore":8.8,"cvssSeverity":"HIGH","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cwes":["CWE-22"],"vendors":[],"products":[],"references":[{"url":"https://github.com/openemr/openemr/security/advisories/GHSA-p4v7-crwp-qq7q","tags":[]},{"url":"https://www.vulncheck.com/advisories/openemr-before-8.4.0-remote-code-execution-via-esign-lfi-and-fax-upload","tags":[]}],"exploitRefs":[{"url":"https://github.com/openemr/openemr/security/advisories/GHSA-p4v7-crwp-qq7q","tags":[]}],"hasPoc":true,"ai":{"summary":"OpenEMR before 8.4.0 has a local file inclusion vulnerability in the ESign router where an unsanitized 'module' parameter is passed to require_once, allowing authenticated attackers to include arbitrary PHP files. Combined with the fax module's insecure file upload that writes attacker-controlled files to a predictable temp path without extension checks, this enables remote code execution.","exploitability":"Authenticated attackers with low privileges can exploit this by uploading a malicious Controller.php file via the fax module and then triggering the LFI via the ESign router endpoint.","blast_radius":"Successful exploitation grants full system compromise including confidentiality, integrity, and availability impacts, potentially affecting all data and users within the OpenEMR instance.","remediation":"Upgrade to OpenEMR version 8.4.0 or later, which patches the unsanitized module parameter handling in library/ESign/Router.php and enforces extension validation in the fax module's file upload functionality.","detection":"Look for HTTP requests to interface/esign/index.php with module parameters containing path traversal sequences (e.g., ../../) followed by Controller.php, and concurrent POST requests to the fax upload endpoint with filenames ending in .php or lacking expected extensions; also monitor for unexpected PHP files appearing in predictable temp directories used by the fax module.","tags":["lfi","rce","file-upload","auth-bypass","webapp","openemr"],"model":"garnet-coder","analyzedAt":"2026-11-09T09:46:21.918Z"}}