Skip to main content

Openemr CVE-2026-33932

HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-03-26 security-advisories@github.com
7.6
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker uploads malicious CCDA document
  2. Delivery
    XSL stylesheet fails to sanitize linkHtml element
  3. Exploit
    JavaScript payload embedded in href attribute
  4. Execution
    Clinician previews document in browser
  5. Impact
    Arbitrary 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

GitHub Advisory PRIMARY 7.6 HIGH
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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 91% exploitable
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:open-emr:openemr:*:*:*:*:*:*:*:*
CVE-2013-10044 HIGH POC
8.7 Aug 01

An authenticated SQL injection vulnerability exists in OpenEMR ≤ 4.1.1 Patch 14 that allows a low-privileged attacker to

CVE-2026-24898 CRITICAL POC
10.0 Mar 03

Unauthenticated token disclosure in OpenEMR before 8.0.0. CVSS 10.0. PoC and patch available.

CVE-2026-24848 CRITICAL POC
9.9 Mar 03

Path traversal in OpenEMR 7.0.4 disposeDocument() allows file access. PoC available.

CVE-2026-24849 CRITICAL POC
9.9 Feb 25

Path traversal in OpenEMR electronic health records before fix allows authenticated users to read arbitrary files on the

CVE-2026-24908 CRITICAL POC
9.9 Feb 25

SQL injection in OpenEMR electronic health records before fix. Authenticated users can execute arbitrary SQL through the

CVE-2024-22611 CRITICAL POC
9.8 Apr 03

OpenEMR 7.0.2 is vulnerable to SQL Injection via \openemr\library\classes\Pharmacy.class.php, \controllers\C_Pharmacy.cl

CVE-2024-37734 CRITICAL POC
9.8 Jun 26

An issue in OpenEMR 7.0.2 allows a remote attacker to escalate privileges viaa crafted POST request using the noteid par

CVE-2026-25146 CRITICAL POC
9.6 Mar 03

Information disclosure in OpenEMR 5.0.2 to before 8.0.0 exposes sensitive data. PoC and patch available.

CVE-2026-39932 CRITICAL POC
9.4 Aug 03

Remote code execution in OpenEMR through 8.2.0 lets an authenticated administrator poison the document category tree so

CVE-2012-0992 HIGH POC
8.5 Feb 07

interface/fax/fax_dispatch.php in OpenEMR 4.1.0 allows remote authenticated users to execute arbitrary commands via shel

CVE-2015-4453 MEDIUM
5.0 Jul 05

interface/globals.php in OpenEMR 2.x, 3.x, and 4.x before 4.2.0 patch 2 allows remote attackers to bypass authentication

CVE-2018-15152 CRITICAL POC
9.1 Aug 15

Authentication bypass vulnerability in portal/account/register.php in versions of OpenEMR before 5.0.1.4 allows a remote

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy