Opened 4 years ago
Last modified 4 years ago
#3460 new bug
XSS via malicious .torrent file
Reported by: | Jasper Lievisse Adriaanse | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | needs verified |
Component: | Web UI | Version: | develop |
Keywords: | Cc: |
Description
The Deluge web ui is vulnerable to XSS through a crafted torrent file.
As the data from torrent files is not properly sanitised it's interpreted directly as HTML. As such someone who supplies the user with a malicious torrent can execute arbitrary Javascript code in the context of the user's browser session. It should be noted that the Tornado webserver is not configured to send any Content-Security-Policy
headers which can help to mitigate some of the impact. Due to this omission, the attacker can download/upload arbitrary data from/to remote endpoints.
It should be noted there is some basic filtering such that a <script>
doesn't work, but this can be trivially bypassed by using a construct such as <img src="#" onerror=
or just a hidden, remote iframe which loads the Javascript payload (see the PoC script for an example).
This script creates a PoC torrent to demonstrate the vulnerability: https://gist.github.com/jasperla/4e6e06034e1cc4131f62839b46b697ef the attached screenshot is taken after uploading a .torrent file generated by that script.
Additionally there are several HTML injection bugs, for example in the Connection Manager, but these are merely bugs as the local user injects the payload as opposed to a remote attacker who uploads a malicious torrent to a public search engine.
Please close this ticket, it's a duplicate of #3459.