Tautulli is a Python based monitoring and tracking tool for Plex Media Server. In Tautulli v2.15.3 and earlier, an attacker with administrative access can use the `pms_image_proxy` endpoint to write arbitrary python scripts into the application filesystem. This leads to remote code execution when combined with the `Script` notification agent. If an attacker with administrative access changes the URL of the PMS to a server they control, they can then abuse the `pms_image_proxy` to obtain a file write into the application filesystem. This can be done by making a `pms_image_proxy` request with a URL in the `img` parameter and the desired file name in the `img_format` parameter. Tautulli then uses a hash of the desired metadata together with the `img_format` in order to construct a file path. Since the attacker controls `img_format` which occupies the end of the file path, and `img_format` is not sanitised, the attacker can then use path traversal characters to specify filename of their choosing. If the specified file does not exist, Tautaulli will then attempt to fetch the image from the configured PMS. Since the attacker controls the PMS, they can return arbitrary content in response to this request, which will then be written into the specified file. An attacker can write an arbitrary python script into a location on the application file system. The attacker can then make use of the built-in `Script` notification agent to run the local script, obtaining remote code execution on the application server. Users should upgrade to version 2.16.0 to receive a patch.
An attacker with administrator privileges changes the Plex Media Server (PMS) address to a server under their control. Then sends a request to the `pms_image_proxy` endpoint, passing the target URL in the `img` parameter and the desired filename in the `img_format` parameter. Tautulli constructs the file path based on metadata hash and the `img_format` value, however the `img_format` parameter is not sanitized — this enables the use of path traversal characters to point to any location in the filesystem. If the specified file does not exist, Tautulli retrieves content from the attacker-controlled PMS server and saves it to the specified path, allowing arbitrary Python scripts to be placed. The attacker then executes the saved script using the `Script` agent, obtaining RCE.
An attacker can execute arbitrary code on the application server with Tautulli process privileges, which may result in full system compromise, data theft, and enable lateral movement in the network.
Tautulli should be updated to version 2.16.0, which contains a patch eliminating the vulnerability. The patch is available in the project's GitHub repository.
Tautulli version 2.15.3 and earlier
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HTautulli
APPTautulli< 2.16.0
Related vulnerabilities
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. From version 1.3.10 to before v...
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to version 2.17.0, the st...
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to version 2.17.0, the /n...
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. The `real_pms_image_proxy` endp...
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. A command injection vulnerabili...