Rapid7

module

Plex Unpickle Dict Windows RCE

Disclosed
May 7, 2020
Created
Jul 16, 2020

Description

This module exploits an authenticated Python unsafe pickle.load of a Dict file. An authenticated attacker
can create a photo library and add arbitrary files to it. After setting the Windows only Plex variable
LocalAppDataPath to the newly created photo library, a file named Dict will be unpickled, which causes
an RCE as the user who started Plex.
Plex_Token is required, to get it you need to log-in through a web browser, then check the requests to grab
the X-Plex-Token header. See info -d for additional details.
If an exploit fails, or is cancelled, Dict is left on disk, a new ALBUM_NAME will be required
as subsuquent writes will make Dict-1, and not execute.

Authors

h00die
Chris Lyne

Platform

Python

Architectures

python

Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':


msf > use exploit/windows/http/plex_unpickle_dict_rce
msf exploit(plex_unpickle_dict_rce) > show targets
...targets...
msf exploit(plex_unpickle_dict_rce) > set TARGET < target-id >
msf exploit(plex_unpickle_dict_rce) > show options
...show and set options...
msf exploit(plex_unpickle_dict_rce) > exploit

Title
Rapid7 Labs

2026 Global Threat Landscape Report

The predictive window has collapsed. Exploitation follows disclosure in days. See how attackers are accelerating and how to stay ahead.