Skip to main content

OpenEMR CVE-2026-40509

| EUVDEUVD-2026-62510 MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-08-19 VulnCheck GHSA-c2ph-gr8x-j747
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft URL with malicious web_path parameter
  2. Delivery
    Deliver link to authenticated OpenEMR victim via email or attacker-controlled page
  3. Exploit
    Victim clicks link while session is active
  4. Execution
    Browser issues authenticated GET request to arbitrary endpoint
  5. Persist
    OpenEMR processes request under victim's credentials
  6. Impact
    State-changing action executed (e.g., forced logout)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The victim must be an authenticated OpenEMR user with 'Patients - Documents' ACL permissions, and must click a crafted URL or visit an attacker-controlled page while their session is active - passive user interaction (UI:P per CVSS 4.0) is a hard prerequisite. The attacker requires no privileges on the OpenEMR instance. Exploitation is limited to state-changing actions reachable via GET requests; the CVSS vector confirms no confidentiality impact (VC:N), meaning direct patient data exfiltration is not achievable through this vector alone. Non-default conditions limiting exploitation: the victim must hold a specific ACL role ('Patients - Documents'), must be actively authenticated at the time of the crafted request, and must interact with the malicious link; unauthenticated users or those lacking the permission are not viable targets.

Impact

The CVSS 4.0 score of 5.3 (Medium) accurately reflects the realistic threat model. The attack vector is network-based (AV:N) with low complexity (AC:L) and requires no attacker privileges (PR:N), but passive victim interaction is mandatory (UI:P) - the authenticated target must click a crafted link or visit an attacker-controlled page during an active session. The impact is constrained to low integrity (VI:L) and excludes confidentiality (VC:N) and availability (VA:N), consistent with the described outcome of forced logout and state changes rather than data exfiltration. No EPSS score was provided in the input data, so probabilistic exploitation likelihood is unknown. The CVE does not appear in the CISA KEV catalog and no public exploit has been identified, indicating no confirmed opportunistic or widespread exploitation at time of analysis. The practical attack surface is further narrowed by the permission prerequisite - only users with 'Patients - Documents' ACL are viable targets. For healthcare organizations, the sensitivity of the environment elevates the priority of patching despite the moderate CVSS score; CSRF in EHR workflows can enable manipulation of patient-related actions beyond simple logout.

Exploit ScenarioDerived

An attacker emails a crafted link embedding a malicious web_path value to a clinic's medical records staff member who holds 'Patients - Documents' permissions. When the victim clicks the link while their OpenEMR session is active, the browser silently issues authenticated GET requests to an arbitrary OpenEMR endpoint encoded in web_path, executing actions such as a forced logout or triggering other state-changing operations without the user's knowledge. No public proof-of-concept exploit has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 19, 2026

Cross-site request forgery in OpenEMR's DICOM viewer (versions before 8.3.0) allows an unauthenticated attacker to force an authenticated user holding 'Patients - Documents' permissions to issue arbitrary state-changing requests to OpenEMR endpoints, including forced logout. The unsanitized reflection of the web_path GET parameter in library/dicom_frame.php is the root mechanism: a crafted URL delivers the malicious payload via the victim's own authenticated session. No public exploit has been identified at time of analysis, and this CVE is not listed in the CISA KEV catalog.

RemediationAI

Upgrade to OpenEMR v8.3.0, which resolves this vulnerability by adding CSRF token validation to the DICOM viewer endpoint and several related state-changing endpoints. The patched release is available at https://github.com/openemr/openemr/releases/tag/v8_3_0 and the fix is documented in commit f760adc7bddaf9d118e1a0d40590e686783ed21b at https://github.com/openemr/openemr/commit/f760adc7bddaf9d118e1a0d40590e686783ed21b. If immediate upgrade is not feasible, restrict 'Patients - Documents' ACL permissions to the minimum set of users who genuinely require DICOM viewing access, reducing the pool of viable victims; this does not eliminate the vulnerability but materially reduces exposure. Placing the OpenEMR interface behind a VPN or IP allowlist prevents external delivery of crafted URLs, which is an effective compensating control but may impact legitimate remote access workflows. User awareness about clicking unexpected links while authenticated is a tertiary mitigation with minimal reliability.

Affected VersionsENISA

OpenEMR 0 <8.3.0

Affected Packages

euvd openemr fix: 8.3.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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 platform; the DICOM viewer component (library/dicom_frame.php) renders medical imaging files by accepting a web_path GET parameter specifying the image location. Prior to the fix, this parameter was embedded unsanitized into the page as a URL with no CSRF token validation and no allowlist check against expected path formats. The root cause class is CWE-352 (Cross-Site Request Forgery): state-changing GET endpoints lacked CSRF token enforcement, enabling an attacker-controlled URL to drive authenticated browser requests. The commit diff at f760adc confirms the fix: CsrfUtils::checkCsrfInput(INPUT_GET, dieOnFail: true) is now gated on web_path presence in dicom_frame.php, CSRF tokens are injected into document list and view templates (general_list.html, general_view.html) that construct DICOM viewer URLs, and related endpoints in pos_checkout_ippf.php and the Weno module's file_download.php were patched in the same commit. CPE cpe:2.3:a:openemr:openemr:*:*:*:*:*:*:*:* covers all OpenEMR versions up to but not including 8.3.0.

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-delivered CSRF requires victim interaction (UI:R) but no attacker privileges; scope is unchanged, integrity impact low (forced logout/state change only), no confidentiality or availability impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

OpenEMR before 8.3.0 contains a cross-site request forgery vulnerability in the DICOM viewer. The web_path GET parameter in the DICOM viewer page is embedded unsanitized as a URL without validation against expected path formats. An attacker can craft a URL that causes an authenticated user with Patients - Documents permissions to make authenticated requests to arbitrary OpenEMR endpoints, enabling forced logout and other state-changing actions.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
open-source EHR deployed in small-to-medium healthcare practices globally
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

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