Openemr
CVE-2026-33932
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker uploads malicious CCDA document
-
DeliveryXSL stylesheet fails to sanitize linkHtml element
-
ExploitJavaScript payload embedded in href attribute
-
ExecutionClinician previews document in browser
-
ImpactArbitrary JavaScript executes in clinician session
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. |
| Exploitation Conditions | Requires OpenEMR prior to version 8.0.0.3. Attacker must have authenticated access to upload or send a CCDA document. Victim clinician must preview the malicious CCDA document in their browser to trigger arbitrary JavaScript execution. |
| Impact | The CVSS score of 7.6 (High) reflects a network-based attack requiring low privileges and user interaction with changed scope, resulting in high confidentiality impact and low integrity impact. The attack vector is realistic in healthcare environments where CCDA documents are routinely exchanged between providers, health information exchanges, and patients. The low attack complexity (AC:L) indicates exploitation is straightforward once an attacker can upload or transmit a CCDA document. The changed scope (S:C) is particularly concerning as it allows escape from the security context of the vulnerable component. The requirement for low privileges (PR:L) and user interaction (UI:R) provides some mitigation, as attackers need authenticated access to upload documents and must wait for a clinician to preview them. Without EPSS or KEV data indicating active exploitation, and given the required preconditions, this represents a moderate real-world risk that should be prioritized for healthcare organizations using OpenEMR but is not an immediate emergency requiring out-of-cycle patching. |
| Exploit ScenarioDerived | An attacker with low-privileged access to an OpenEMR instance (such as a patient portal account or compromised external provider credentials) crafts a malicious CCDA document containing linkHtml elements with javascript: protocol URLs or event handler attributes like onclick. The attacker uploads this document through the patient portal or sends it via a health information exchange integration. When a clinician with elevated privileges opens the document preview to review the patient's clinical information, the malicious JavaScript executes in their authenticated session, potentially allowing the attacker to steal session tokens, access sensitive patient data, modify clinical records, or perform actions with the clinician's privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 26, 2026
A stored cross-site scripting (XSS) vulnerability exists in OpenEMR's CCDA document preview functionality that allows authenticated attackers to execute arbitrary JavaScript in clinician browser sessions. OpenEMR versions prior to 8.0.0.3 are affected. The vulnerability occurs because the XSL stylesheet fails to sanitize linkHtml attributes in CCDA documents, allowing javascript: URLs and event handlers to execute when documents are previewed.
RemediationAI
Upgrade OpenEMR to version 8.0.0.3 or later, which contains the patch that properly sanitizes linkHtml attributes in CCDA documents. The fix is available in the release at https://github.com/openemr/openemr/releases/tag/v8_0_0_3 and the specific commit addressing the vulnerability can be reviewed at https://github.com/openemr/openemr/commit/95e6078889b5399b12b59117f998560cd94bd47d. Until patching is completed, organizations should implement compensating controls such as restricting CCDA document upload permissions to highly trusted users only, implementing content security policy (CSP) headers to limit inline script execution, and conducting security awareness training for clinical staff to avoid previewing CCDA documents from untrusted sources. Review audit logs for any suspicious CCDA document uploads or preview activity prior to patching.
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
OpenEMR is an open-source electronic health records (EHR) and medical practice management system. This vulnerability stems from insufficient input sanitization (CWE-79) in the XSLT transformation process used to render CCDA (Consolidated Clinical Document Architecture) documents for preview. CCDA is an HL7 standard XML format for exchanging clinical documents. The XSL stylesheet responsible for transforming CCDA XML into HTML properly sanitizes most narrative elements but contains a specific gap for linkHtml elements, allowing href attributes with javascript: protocol handlers and inline event handlers (onclick, onload, etc.) to pass through unescaped. When a clinician previews a malicious CCDA document, the unsanitized content executes in their authenticated browser 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:H/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, a stored cross-site scripting vulnerability in the CCDA document preview allows an attacker who can upload or send a CCDA document to execute arbitrary JavaScript in a clinician's browser session when the document is previewed. The XSL stylesheet sanitizes attributes for all other narrative elements but not for linkHtml, allowing href="javascript:..." and event handler attributes to pass through unchanged. Version 8.0.0.3 patches the issue.
Executive ViewAI
OpenEMR installations are vulnerable to stored XSS attacks that could allow attackers to compromise clinician sessions and access sensitive patient data through malicious CCDA documents. This affects all healthcare organizations using OpenEMR versions before 8.0.0.3, with no patch currently available, requiring immediate interim protective measures.
Disable CCDA preview feature in OpenEMR configuration if clinical workflow permits. Implement WAF rules to sanitize or block javascript: URLs and event handler attributes (onload, onerror, onclick, etc.) in HTTP requests to preview endpoints. Restrict CCDA document preview access to specific trusted roles/users only. Segment OpenEMR instances on separate network with restricted outbound access to limit lateral movement from compromised clinician sessions. Enable enhanced logging and alerting for document preview activities. Consider network-based content filtering to block suspicious JavaScript execution patterns.
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
Related Vulnerabilities in OpenEMR Authorization and XSS Vulnerabilities
View all 6An 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
VulDB
Exploit-DB