Vulnerability record · CVE-2019-3964 · published 20 August 2019
CVE-2019-3964: OpenEMR controller.php doc_id reflected XSS
Open Emr · Openemr
OpenEMR 5.0.1 and earlier contains a reflected cross-site scripting flaw in the doc_id parameter of controller.php. Because the injected script runs in the victim's session context, it can be used to act as the logged-in user. The record gives no further detail on the exact request path or output encoding failure.
Description
In OpenEMR 5.0.1 and earlier, controller.php contains a reflected XSS vulnerability in the doc_id parameter. This could allow an attacker to execute arbitrary code in the context of a user's session.
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Automated analysis
high priorityPublic exploit references and a very high EPSS percentile raise the likelihood of attempted exploitation despite the medium CVSS score.
What it is
OpenEMR 5.0.1 and earlier contains a reflected cross-site scripting flaw in the doc_id parameter of controller.php. Because the injected script runs in the victim's session context, it can be used to act as the logged-in user. The record gives no further detail on the exact request path or output encoding failure.
Impact
An attacker can execute arbitrary script in a victim's browser session, potentially stealing session data or performing actions as that user. The CVSS scope change (S:C) indicates impact can extend beyond the vulnerable component.
Attack surface
Reached over the network via a crafted request to controller.php with a malicious doc_id value; the CVSS vector requires user interaction (UI:R) and no privileges (PR:N), so a victim must be induced to load the crafted link.
Exploitation
Not listed in CISA KEV, but EPSS is high at roughly 0.53 (98.9th percentile) and the only references are tagged Exploit, indicating public exploit detail exists.
What to do
- Upgrade OpenEMR past 5.0.1 to a release that fixes the doc_id reflected XSS.
- If immediate upgrade is not possible, apply vendor or community patches for controller.php and validate output encoding of doc_id.
- Deploy a WAF rule or input filtering that blocks script payloads in the doc_id parameter.
- Restrict exposure of the OpenEMR instance and enforce strong session protections such as HttpOnly and short session lifetimes.
Detection
- Search web and proxy logs for requests to controller.php with script-like content in the doc_id parameter.
- Alert on reflected payloads containing script tags, event handlers or javascript: URIs in doc_id values.
- Monitor for anomalous authenticated actions or session token use following requests with suspicious doc_id values.
This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.
Affected products
1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.
References
| Link | Tags |
|---|---|
| https://www.tenable.com/security/research/tra-2019-40 | ExploitThird Party Advisory |
| https://www.tenable.com/security/research/tra-2019-40 | ExploitThird Party Advisory |
Track CVE-2019-3964 inside VULONE
Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.
Related vulnerabilities
Same products first, then exploited flaws of the same weakness class.
Source: NIST National Vulnerability Database (record CVE-2019-3964), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.