Tenda CH22
cpe:2.3:h:tenda:ch22:*:*:*:*:*:*:*, +1 more
- 1.0.0.1
A critical buffer overflow vulnerability has been identified in the Tenda CH22 router, specifically in version 1.0.0.1. The issue arises in the SafeMacFilter endpoint, where the fromSafeMacFilter function processes the user-controlled page parameter using sprintf. This method writes data into a fixed-size buffer without proper length checks, allowing input larger than 256 bytes to overwrite adjacent memory. Such memory manipulation can lead to application crashes, memory corruption, or arbitrary code execution. The vulnerability poses significant risks to device stability, data confidentiality, and overall system security, necessitating immediate attention to prevent exploitation.
Exploitation of this vulnerability can cause a denial-of-service condition by crashing the web server process, making the device's management interface unavailable. Additionally, it allows for arbitrary code execution by overwriting the return address on the stack to redirect program execution to injected shellcode, potentially giving the attacker full control over the device. There is also a risk of information leakage, where sensitive data from the device's memory could be exposed. Successful exploitation could enable an attacker to take over the router, monitor network traffic, or use the device as a pivot point to attack other devices on the network.
The vulnerability can be reproduced by sending a POST request to the /goform/SafeMacFilter endpoint with an oversized page parameter. This can be done using a Python script that automates the process by sending the request with a payload that exceeds the buffer size limit.
It is recommended to replace unsafe functions like sprintf with safer alternatives such as snprintf, which enforce buffer size limits. Implementing strict bounds checking on user input, validating and sanitizing the page parameter, and applying the principle of least privilege by running the service with the lowest required privileges can also help mitigate the vulnerability.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.