CVE-2025-9087 Overview
A stack-based buffer overflow vulnerability has been identified in the Tenda AC20 router running firmware version 16.03.08.12. This vulnerability exists within the set_qosMib_list function located in the /goform/SetNetControlList endpoint of the SetNetControlList component. An attacker can exploit this vulnerability by manipulating the list argument to trigger a buffer overflow condition, potentially enabling remote code execution or denial of service on affected devices.
Critical Impact
Remote attackers with low privileges can exploit this stack-based buffer overflow to compromise Tenda AC20 routers, potentially gaining full control of the device and establishing a foothold for further network attacks.
Affected Products
- Tenda AC20 Firmware version 16.03.08.12
- Tenda AC20 Hardware Device
Discovery Timeline
- August 16, 2025 - CVE-2025-9087 published to NVD
- August 21, 2025 - Last updated in NVD database
Technical Details for CVE-2025-9087
Vulnerability Analysis
This vulnerability is classified under CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer). The core issue resides in the set_qosMib_list function, which processes user-supplied input from the list parameter without proper bounds checking. When an attacker submits a maliciously crafted request to the /goform/SetNetControlList endpoint, the function copies the attacker-controlled data onto the stack without verifying the input length against the allocated buffer size.
The vulnerability can be exploited remotely over the network and requires only low-level privileges to execute. No user interaction is required for successful exploitation, making this a particularly dangerous attack vector for IoT devices like routers that are often exposed to untrusted networks.
Root Cause
The root cause of this vulnerability is insufficient input validation in the set_qosMib_list function. The firmware fails to properly sanitize or limit the size of the list argument before copying it to a stack-allocated buffer. This allows attackers to overflow the buffer, overwrite adjacent memory including return addresses, and potentially redirect program execution to attacker-controlled code.
Attack Vector
The attack is initiated remotely over the network by sending a specially crafted HTTP POST request to the vulnerable /goform/SetNetControlList endpoint. The attacker supplies an oversized or malformed list parameter that exceeds the expected buffer size. When the set_qosMib_list function processes this input, it overwrites the stack, enabling:
- Denial of service through device crash
- Remote code execution by overwriting the return address with a pointer to shellcode or ROP gadgets
The vulnerability has been publicly disclosed, and a proof-of-concept Python exploit script is available in the GitHub Repository for AC20. Technical details and exploitation methodology can be found in the GitHub PoC Python Exploit Script.
Detection Methods for CVE-2025-9087
Indicators of Compromise
- Unusual HTTP POST requests to /goform/SetNetControlList with abnormally large list parameter values
- Router crashes, unexpected reboots, or unresponsive web management interfaces
- Suspicious outbound network connections originating from the router to unknown external IP addresses
- Modified router configurations or new administrative accounts that were not created by legitimate users
Detection Strategies
- Implement network intrusion detection rules to monitor for oversized HTTP POST requests targeting the /goform/SetNetControlList endpoint
- Deploy deep packet inspection to analyze HTTP request bodies for buffer overflow attack patterns in the list parameter
- Monitor router syslog output for segmentation faults, memory errors, or unexpected service restarts
- Use network traffic analysis to detect anomalous behavior from router management interfaces
Monitoring Recommendations
- Enable logging on upstream firewalls to capture all traffic to and from Tenda AC20 router management interfaces
- Implement alerting for multiple failed or malformed requests to GoForm endpoints
- Regularly audit router configurations and compare against known-good baselines to detect unauthorized changes
- Monitor for firmware modification attempts or unauthorized access to device storage
How to Mitigate CVE-2025-9087
Immediate Actions Required
- Restrict network access to the router's web management interface, limiting it to trusted administrative hosts only
- Place the Tenda AC20 router behind a firewall that blocks external access to port 80/443 management interfaces
- Disable remote administration features if not required for operational needs
- Monitor the Tenda Official Website for firmware updates addressing this vulnerability
- Consider device replacement if vendor patch is not available in a timely manner
Patch Information
At the time of publication, no official patch from Tenda has been identified in the available references. Organizations should monitor vendor communications and the Tenda Official Website for security updates. Additional vulnerability details are tracked in VulDB #320355.
Workarounds
- Implement access control lists (ACLs) on upstream network devices to restrict access to the router's management interface to specific trusted IP addresses
- Disable the web-based management interface if alternative management methods (such as console access) are available
- Segment the network to isolate the vulnerable router from critical assets and sensitive network segments
- Deploy a web application firewall (WAF) or reverse proxy in front of the management interface to filter malicious requests
# Example firewall rule to restrict access to router management interface
# Allow management access only from trusted admin subnet
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

