Home page logo

fulldisclosure logo Full Disclosure mailing list archives

Transmission BitTorrent XSS Vulnerability
From: Justin Klein Keane <justin () madirish net>
Date: Thu, 26 Jul 2012 11:27:50 -0400

Hash: SHA1

Vulnerability Report

Author: Justin C. Klein Keane <justin () madirish net>
Reported: July 19, 2012


Description of Vulnerability:
- -----------------------------
Transmission (http://www.transmissionbt.com) is a popular, cross
platform, open source BitTorrent client.  Transmission includes
functionality to enable a web based display of the application.
Unfortunately this web based client doesn't sanitize text from
.torrent files that are loaded into the client resulting in an
arbitrary script injection (or cross site scripting (XSS)) vulnerability.

- ------
Clients loading a maliciously crafted .torrent file into Transmission
and viewing the web client could be subject to arbitrary script
injection, allowing an attacker to run arbitrary code in the context
of the victim's web browser.  This could lead to privacy compromises
(such as if the script "phoned home" to another URL with client
information) or client side attacks (such as drive by downloads).

Systems affected:
- -----------------
Transmission 2.50 on Fedora 17 was tested and shown to be vulnerable,
but Transmission is a cross platform tool so it is possible versions
for other operating systems (such as Mac, Windows, and other Linux)
are vulnerable as well.

Mitigating factors:
- -------------------
The information displayed via the Transmission web client is loaded
via AJAX calls and is entirely event driven.  This means malicious
scripts must be crafted to exploit the way in which content is
dynamically rendered.  This presents some barrier, but is easy
bypassed by injecting event driven elements in the display.  Malicious
script elements in the torrent name are easily visible via the desktop
client, but malicious elements in the 'created by' or 'comments'
elements are more difficult for end users to detect.

Proof of Concept Exploit:
- -------------------------
1.  Create a malicious torrent file (Example below) that includes
arbitrary script elements in the name, comment, or authored by elements.
2.  Install and start up the Transmission client
3.  In Transmission select Edit->Preferences then click the 'Web' tab
4.  Check the 'Enable web client'
5.  Open a web browser and navigate to the web based client
6.  Click the 'Open Torrent' icon in the upper left and select the
malicious file from step #1
7.  Highlight the torrent and click the 'Toggle Inspector' icon in the
upper left.
8.  Mouse over the "Mouse over me" sections in the information pane to
view the rendered JavaScript alert boxes.

Vendor Response:
- -----------------
Upgrade to Transmission 2.61 or later.

Sample Malicious Torrent:
- -------------------------
onmouseover="javascript:alert('xss');">Mouse over me</div>10:created
by63:<div onmouseover="javascript:alert('xss');">Mouse over
√b]Ú‘öÊS°ÜÕÁä0ïe ©Ö:Řƒúß«

- -- 
Justin C. Klein Keane
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

  By Date           By Thread  

Current thread:
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]