Vulnerability title: Multiple Instances Of XSS In Viprinet Multichannel VPN Router 300
|Product:||Multichannel VPN Router 300|
|Reported by:||Tim Brown|
The data supplied to both the `old´ and `new´ web applications (the device has two web based management interfaces) was permanently stored and could be retrieved later by other users. This is a normal feature of many applications, however, in this instance the application failed to restrict the type of data that could be stored and also failed to sanitise it, meaning that it could not be safely rendered by the browser.
Stored cross-site scripting could be triggered by:
- Attempting to login with a username of `<script>alert(1)</script>´ (affects `old´ interface and results in post-authentication cross-site Scripting when a legitimate administrator views the realtime log)
- Creating an account with a username of `<script>alert(1)</script>´ (affects both `old´ and `new´ interfaces once created)
- Setting the device’s hostname to `<script>alert(1)</script>´ (affects `old´ interface once created)
A number of locations were identified as being vulnerable to reflective attacks, including:
http://<host>/exec?module=config&sessionid=<sessionid>&inspect=%3Cscript%20src=http://localhost:9090%3E%3C/script%3E http://<host>/exec?tool=atcommands&sessionid=<sessionid>&sourceobject=WANINTERFACELIST.OBJECT__0&module=configtools&commands=%3Cscript%3Ealert%281%29%3C%2Fscript%3E http://<host>/exec?tool=ping&sessionid=<sessionid>&sourceobject=WANINTERFACELIST.OBJECT__0&module=configtools&host=%22%3E%3Cscript%3Ealert%281%29%3C%2Fscript%3E&pingcount=3&databytes=56
The inclusion of session IDs in all URLs partially mitigates the reflective cross-site scripting but could itself be considered a vulnerability since it is included in referred headers and log files.
These are simply some examples of how this attack might be performed, and the it is believed that both the `old´ and `new´ web applications are systemically vulnerable to this.
An attacker could exploit this flaw to get active HTML or script code executed in an authenticated user's browser. Cross-site Scripting may be used to perform attacks such as session hijacking by invoking the user's browser to send information stored in their cookies (such as a session identification token) to an arbitrary location controlled by the attacker. Furnished with this information the attacker could immediately access the site, masquerading as the authenticated user who viewed the page containing the malicious code. The attacker would then be able to perform actions as the authorised user, subject to their role, which could include viewing sensitive data, modifying profile information and making transactions.
This vulnerability could also be leveraged in a phishing attack, whereby the attacker adds additional HTML code to create a false login page within the vulnerable page, which posts the data to a server controlled by the attacker. The attacker could then redirect the user back to the original server, thus giving the illusion that the login was secure and genuine. This could also be achieved by redirecting the user to a false login page on the attacker's server rather than adding the code to a page that already exists. This is critical, because if the attacker could host a "phishing" website in a domain with a valid SSL certificate, there would be no way for a user to spot the attack.
A variation of the "phishing" attack described above would be to inject code to completely rewrite the genuine page, defacing the site and possibly having a detrimental impact on the reputation of the company.
Finally, an attacker could use Cross-site Scripting to exploit vulnerabilities within web browsers. The outcome of such an attack would depend on the exploits used, but in a worst case scenario the attacker could gain full control of a user's computer. Once that had been achieved it would be trivial for the attacker to install a keystroke logger and gain access to applications via the usernames and passwords they had acquired.
Exploit code is not required.
The vendor has released a patch.
|03/02/2014||Initial vendor contact established|
|03/11/2015||MITRE assigned CVE-2014-2045|
Copyright @ Portcullis Computer Security Limited 2015, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of Portcullis Computer Security Limited.
The information herein contained may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user’s risk. In no event shall the author/distributor (Portcullis Computer Security Limited) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.