Plex Media Server admin file write, exploited (CVE-2026-96656) [PoC]
CVE-2026-96656
CVE-2026-96656: Plex Media Server before 1.43.3.10861 lets an admin load unsanitized shared objects and transcode options, enabling code execution. Update to 1.43.3.10861.
Actively exploited in the wild - CVE-2026-96656 is a high-severity code execution flaw in Plex Media Server before 1.43.3.10861 that lets an admin user plant files which the server executes on load. Patched in 1.43.3.10861; update immediately.
Overview
CVE-2026-96656 combines two weaknesses in how Plex Media Server handles admin-supplied data. First, the preference TranscoderH264Options is appended verbatim to the x264 option string on every transcode, so an admin can inject arbitrary flags into the encoder invocation. Second, at startup the server runs every .so file it finds without checking signatures, execute permissions, or expected symbols.
Together these let an admin write files that the server later executes. The admin role is already privileged, so the severity comes from the path it opens: admin access is escalated into code execution as the Plex service account, and on typical home and small-office deployments that account often has broad access to media libraries, configuration, and neighboring data.
The CVSS 8.6 score reflects network attack vector, low complexity, high privileges required, and no user interaction. The EPSS score sits at roughly 0.4 percent, which is low, but that statistical estimate is outweighed here by CISA KEV status confirming real-world exploitation.
Impact
Successful exploitation lets an attacker run code with the permissions of the Plex Media Server process. That can mean reading or altering media libraries, tampering with server configuration, reaching credentials stored alongside the app, and using the host as a foothold into the local network. Because the load path runs at startup, a planted payload can persist across restarts until the file is found and removed.
Administrators who reuse a single admin password across services, or who expose Plex remotely, face the greatest exposure. An attacker who obtains admin credentials through phishing, credential stuffing, or a leaked password can chain this flaw into durable host compromise.
Remediation and Mitigation
- Upgrade Plex Media Server to 1.43.3.10861 or later. This is the only complete fix.
- Rotate the Plex admin credentials and any tokens associated with the instance, especially if the server was exposed to the internet.
- Audit the Plex data directory and plugin folders for unexpected
.sofiles and remove anything you cannot account for. - Review
TranscoderH264Optionsand related transcode preferences for injected values, and reset them to defaults. - Restrict remote access and place the server behind a VPN or firewall where practical.
- Monitor for unexpected child processes spawned by the Plex service account.
Teams tracking exposure across their estate can review breach reports and current security news for related activity.
Security Insight
This case is a template for a growing pattern: trusted, privileged configuration paths treated as internal and therefore safe. Vendors increasingly assume administrators are honest, but stolen admin credentials are one of the most common initial-access vectors, so any admin-only write that becomes execution is effectively a remote code execution primitive once authentication falls. The startup loader that runs unsigned shared objects with no checks is the deeper design failure, and it echoes earlier plugin-loading incidents where convenience outranked validation. Plex users should treat their server as internet-facing even when they believe it is not.
Further Reading
Never miss a critical vulnerability
Get real-time security alerts delivered to your preferred platform.
Public PoC References
Unverified third-party code
These repositories are publicly listed on GitHub and have not been audited by Yazoul Security. They may contain malware, backdoors, destructive payloads, or operational security risks (telemetry, exfiltration). Treat them as hostile binaries. Inspect source before execution. Run only in isolated, disposable lab environments (offline VM, no credentials, no production data).
Authorized use only. This information is provided for defensive research, detection engineering, and patch validation. Using exploit code against systems you do not own or do not have explicit written permission to test is illegal in most jurisdictions and violates Yazoul's terms of use.
| Repository | Stars |
|---|---|
| a3igner/plex-codec-cache-implant Incident write-up: unsigned .so in the Plex Media Server codec cache executes a dropper on every transcode (CVE-2026-96656) — IOCs, STIX, YARA | ★ 0 |
Showing 1 of 1 known references. Source: nomi-sec/PoC-in-GitHub.
Related Advisories
Plex Media Server before 1.43.3.10861 does not correctly neutralize URL values included in 'searchOne,' allowing an attacker to call other plugins' functions and supply their own parameters....
Plex Media Server before 1.43.3.10861 allows an authenticated user to request arbitrary internal or external addresses via the '/video/:/transcode/universal' path parameter....
Plex Media Server before 1.43.3.10861 allows SSRF via '/player/timeline'. An attacker using any X-Plex-Token value can include a full URL in the 'protocol' parameter and force the Plex server to POST ...
External Control of File Name or Path in the Mail feature of Zoom Workplace for Windows before 6.6.0 may allow an unauthenticated user to conduct an escalation of privilege via network access....
Other Plex Media Server Vulnerabilities
Plex Media Server before 1.43.3.10861 does not correctly neutralize URL values included in 'searchOne,' allowing an attacker to call other plugins' functions and supply their own parameters....
Plex Media Server before 1.43.3.10861 allows an authenticated user to request arbitrary internal or external addresses via the '/video/:/transcode/universal' path parameter....
Plex Media Server before 1.43.3.10861 allows SSRF via '/player/timeline'. An attacker using any X-Plex-Token value can include a full URL in the 'protocol' parameter and force the Plex server to POST ...