Lucene search
+L

ASUS RT-AC68U Remote Command Execution

🗓️ 04 Apr 2014 00:00:00Reported by Joaquim Brasil de OliveiraType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

ASUS RT-AC68U Remote Command Execution Vulnerabilit

Code
`=====[Alligator Security Team - Security Advisory]============================  
  
Remote Command Execution within the ASUS RT-AC68U Managing Web Interface  
  
Author: Joaquim Brasil de Oliveira < palulabrasil () gmail com >  
< twitter.com/palulabr >  
  
=====[Table of Contents]======================================================  
  
1. Overview  
2. Detailed description  
3. Other contexts & solutions  
4. Acknowledgements  
5. Timeline  
6. References  
  
=====[1. Overview]============================================================  
  
* Systems affected: ASUS RT-AC68U web interface - 3.0.0.4.374_4561 (verified)  
- 3.0.0.4.374.4755 (verified)  
- 3.0.0.4.374_4887 (verified)  
(other versions may be affected)  
* Release date: 04/04/2014  
* Impact: This vulnerability allows for an authenticated user to perform  
arbitrary command execution within the Network Tools of the ASUS  
RT-AC68U web management interface.  
  
The ASUS RT-AC68U is the world's fastest Wi-Fi router, with combined dual-band  
data rates of up to 1900 Mbps. 1300 Mbps 802.11ac at 5 GHz gives Gigabit  
wireless data rates, while Broadcom(R) TurboQAM(tm) technology super-charges 2.4 GHz  
802.11n performance from 450 Mbps to 600 Mbps with compatible devices[1].  
  
=====[2. Detailed description]================================================  
  
The ASUS RT-AC68U router has a web interface management tool designed to  
graphically assist users in configuring various features and/or diagnosing  
problems. However, there is a bug with the "Network Analysis" tab of this web  
management interface that results in granting remote command execution to logged  
in users.  
  
Furthermore, in order to exploit this bug, a logged in user needs to visit the  
aforementioned Network tab and choose any of the given methods (Ping, Traceroute  
or Nslookup). As a means to prove the concept proposed by this document, the  
Ping method was chosen and the following settings were stated:  
  
Method: PING  
Target: 127.0.0.1;pwd  
Count: 1 (in order to fasten things up!)  
  
The following GET request is generated as a result of using these settings:  
  
https://[router IPaddress]/apply.cgi?current_page=Main_Analysis_Content.asp&  
next_page=Main_Analysis_Content.asp&group_id=&modified=0&action_mode=+Refresh+&  
action_script=&action_wait=&first_time=&preferred_lang=EN&  
SystemCmd=ping+-c+1+127.0.0.1%3Bpwd&firmver=3.0.0.4&cmdMethod=ping&  
destIP=127.0.0.1%3Bpwd&pingCNT=1  
  
As can be seen in the aforementioned request, because of the fact that the  
application runs in a Linux environment, the pwd command will be stacked after  
the ping command. This, in turn, will force the router to run a "pwd" command  
after executing the "ping" command.  
  
The response of this request --- shown in the downwards textarea --- was:  
  
/www  
  
By changing the aforementioned input to "127.0.0.1;cat /etc/passwd" within the  
target input area, the application responds with the contents of the  
"/etc/passwd" file --- wich in turn, contains information regarding users in the  
given system.  
  
An example of the result in my system is shown below:  
  
[redacted]:x:0:0:[redacted]:/root:/bin/sh  
nas:x:100:100:nas:/dev/null:/dev/null  
nobody:x:65534:65534:nobody:/dev/null:/dev/null  
[redacted]:x:500:500:::  
[redacted]:x:200:200:::  
  
This bug occurs because the source code of the /www/Main_Analysis_Content.asp  
file concatenates the values inserted by the user without performing  
sanitization.  
  
The following snippet demonstrates a piece of code regarding the ping feature  
(which could be retrieved by inserting the "127.0.0.1;cat  
/www/Main_Analysis_Content.asp" value within the target input area):  
  
[code]  
  
if(document.form.cmdMethod.value == "ping"){  
if(document.form.pingCNT.value == ""){  
document.form.pingCNT.value = 5;  
}  
document.form.SystemCmd.value = "ping -c " + document.form.pingCNT.value +  
" " + document.form.destIP.value;  
}  
else  
document.form.SystemCmd.value = document.form.cmdMethod.value + " " +  
document.form.destIP.value;  
document.form.submit();  
  
[/code]  
  
As can be seen, the document.form.SystemCmd.value = "ping -c " +  
document.form.pingCNT.value + " " + document.form.destIP.value; instruction  
concatenates the data entered by the user without performing sanitization.  
  
This vulnerability is considered critical, however it's viability ---  
exploitability ease --- is not considered high since the attacker needs to gain  
access to the router's management interface in order to exploit it. But on the  
other other hand, it is important to mention that performing operating system  
commands freely is not a feature provided by the aforementioned management  
interface interface so, as a consequence, by exploiting this vulnerability an  
attacker is given opportunity to perform high profile execution of arbitrary  
commands within the given asset's operating system.  
  
=====[3. Other contexts & solutions]==========================================  
  
Other tests were performed with the Nslookup and Traceroute methods, which in  
turn, also revealed themselves vulnerable.  
  
In order to erradicate this problem, the server receiving the request must  
validate user input in order to strictly allow IP address inputs or, the use of  
strictly defined host addresses (such as www.facebook.com). An approach regards  
using white listing measures in order to allow --- exclusively --- the insertion  
of IP addresses (e.g: 127.0.0.1) or hostnames (e.g: wwww.facebook.com). In this  
given scenario, any other input would be discarded.  
  
As previously mentioned, a potential attacker could take advantage of this issue  
to perform high profile execution of arbitrary commands within the given asset's  
operating system.  
  
=====[4. Acknowledgements]====================================================  
  
- Heyder Andrade < heyder andrade () gmail com >  
- Leandro Oliveira < leandrofernando () gmail com >  
  
=====[5. Timeline]============================================================  
  
03/10/2014 - ASUS was contacted;  
03/11/2014 - ASUS Brazilian support directed me to ASUS North America;  
03/11/2014 - ASUS North America was contacted;  
03/24/2014 - ASUS acknowledged the vulnerability, shipped a beta version  
regarding the next firmware release (3.0.0.4.374.4755) and,  
established a time window in order to publish the patch;  
03/27/2014 - ASUS pushed a new beta firmware release (3.0.0.4.374.4887);  
04/03/2014 - ASUS resolved issue in beta firmware release (3.0.0.4.374_4983);  
04/04/2014 - ASUS released a stable firmware patch (3.0.0.4.374.5047) in its  
support site[2]  
04/04/2014 - Advisory publication date.  
  
=====[6. References]==========================================================  
  
[1] http://www.asus.com/Networking/RTAC68U/  
[2] http://www.asus.com/Networking/RTAC68U/#support  
  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

04 Apr 2014 00:00Current
7.4High risk
Vulners AI Score7.4
31