CVE-2026-96652

Plex Media Server SSRF Exploitation (CVE-2026-96652)

Collection Discovery Last updated:

Detects exploitation of CVE-2026-96652, a Server-Side Request Forgery (SSRF, CWE-918) vulnerability in Plex Media Server v1.43.2 and earlier. An attacker who can reach the Plex web/API surface can coerce the server into issuing attacker-controlled outbound HTTP requests, enabling access to internal services, cloud instance metadata endpoints (e.g. 169.254.169.254), and localhost-bound admin interfaces. This CVE is listed in CISA KEV (BOD 26-04), indicating active in-the-wild exploitation. This detection surfaces anomalous server-initiated outbound connections from the Plex Media Server process to internal/metadata/loopback ranges and suspicious inbound API requests containing URL-like parameters, which are the hallmark of SSRF abuse.

Vulnerability Intelligence

KEV — Known Exploited

What is CVE-2026-96652 Plex Media Server SSRF Exploitation (CVE-2026-96652)?

Plex Media Server SSRF Exploitation (CVE-2026-96652) (CVE-2026-96652) maps to the Collection and Discovery tactics — the adversary is trying to gather data of interest to their goal in MITRE ATT&CK.

This page provides production-ready detection logic for Plex Media Server SSRF Exploitation (CVE-2026-96652), covering the data sources and telemetry it touches: Microsoft Defender for Endpoint, DeviceNetworkEvents. The queries below are rated high severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Collection Discovery
Microsoft Sentinel / Defender
kusto
let MetadataRanges = dynamic(["169.254.169.254", "169.254.170.2", "127.0.0.1", "::1"]);
let InternalCidrs = dynamic(["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]);
DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("Plex Media Server.exe", "Plex Media Server", "PlexMediaServer")
| where ActionType == "ConnectionSuccess"
| where RemoteIP in (MetadataRanges)
    or ipv4_is_in_any_range(RemoteIP, InternalCidrs)
    or RemotePort in (169, 80, 8080, 443, 2375, 6443, 9200)
| where RemoteIP != LocalIP
| summarize ConnCount = count(), Ports = make_set(RemotePort), FirstSeen = min(Timestamp), LastSeen = max(Timestamp) by DeviceName, InitiatingProcessFileName, RemoteIP, InitiatingProcessAccountName
| where ConnCount >= 1
| project FirstSeen, LastSeen, DeviceName, InitiatingProcessFileName, InitiatingProcessAccountName, RemoteIP, Ports, ConnCount
| order by LastSeen desc

Flags outbound connections initiated by the Plex Media Server process toward cloud metadata endpoints, loopback, or internal RFC1918 ranges — the server-side fetch primitive abused by the SSRF.

high severity medium confidence

Data Sources

Microsoft Defender for Endpoint DeviceNetworkEvents

Required Tables

DeviceNetworkEvents

False Positives

  • Plex legitimately contacting internal DLNA/media devices on the LAN for library scanning
  • Reverse-proxy or companion containers on loopback that Plex is configured to talk to
  • Internal monitoring or backup agents sharing the Plex host IP space

Sigma rule & cross-platform mapping

The detection logic for Plex Media Server SSRF Exploitation (CVE-2026-96652) (CVE-2026-96652) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1 Simulate SSRF to cloud metadata endpoint

    Expected signal: Outbound NetworkConnect event to 169.254.169.254 on port 80 from the issuing process

  2. Test 2 Simulate SSRF internal port scan to loopback service

    Expected signal: Multiple loopback NetworkConnect events to administrative ports in a short window

  3. Test 3 Windows SSRF metadata fetch simulation

    Expected signal: DeviceNetworkEvents ConnectionSuccess to 169.254.169.254 from the initiating process


Response Playbook

Triage

  1. Confirm the Plex Media Server version on the affected host; versions <= v1.43.2 are vulnerable to CVE-2026-96652 and must be prioritized per CISA BOD 26-04.
  2. Review the flagged outbound connection(s): identify the destination (cloud metadata 169.254.169.254, loopback, or internal service) and whether it maps to any legitimate Plex LAN/library scanning behavior.
  3. Correlate the outbound server-side fetch with the preceding inbound HTTP/API request to the Plex web surface to find the request that triggered the SSRF (URL-like parameters, redirects, or crafted library/media paths).
  4. Determine whether the destination was a sensitive internal target (metadata credential endpoint, Docker socket 2375, Kubernetes API 6443, Elasticsearch 9200).

Containment

  1. Isolate or network-segment the Plex host to block arbitrary outbound server-initiated traffic, especially to 169.254.169.254 and internal management ports.
  2. Upgrade Plex Media Server to a fixed release (newer than v1.43.2) immediately; if patching is delayed, restrict the Plex web/API surface to trusted networks via firewall/reverse-proxy allowlist.
  3. Block egress from the Plex host to cloud metadata IPs and internal admin service ports at the host or network firewall.

Evidence Collection

  1. Preserve Plex Media Server logs (Plex Media Server/Logs/) including access and transcoder logs showing the triggering request and timestamps.
  2. Capture EDR/network flow records for all outbound connections initiated by the Plex process in the exploitation window, including destination IPs, ports, and byte counts.
  3. If a cloud metadata endpoint was contacted, snapshot the instance's IAM role/credentials and audit CloudTrail/activity logs for any use of exfiltrated credentials.

Escalation Criteria

  • ! Escalate to IR immediately if the Plex process successfully reached a cloud metadata endpoint (169.254.169.254) or an internal credential/admin service, as credential theft or lateral movement may have occurred.
  • ! Escalate if evidence shows the SSRF was chained to internal service access (Docker socket, Kubernetes API, databases) or if exfiltrated cloud credentials were subsequently used.

Investigation Guide

Forensic Artifacts

  • > Plex Media Server access/transcoder logs showing crafted requests with URL-like parameters
  • > EDR NetworkConnect records attributing outbound connections to the Plex process
  • > Cloud provider metadata-access and subsequent CloudTrail/activity events if credentials were reached

Tuning Guidance

Baseline the normal set of internal/LAN IPs that Plex legitimately contacts for DLNA/media device discovery and library scanning, then exclude those well-known destinations. Keep metadata IPs (169.254.169.254/169.254.170.2) and sensitive admin ports (2375/6443/9200) unexcluded as they have no legitimate Plex use. Narrow the RFC1918 match to destinations outside the host's local subnet to cut LAN-scan noise, and raise confidence when the outbound fetch directly follows an inbound API request with URL parameters.


Hunting Queries

Hunt for any Plex process outbound connections to the cloud metadata endpoint or loopback, which have no legitimate Plex use case.

Hunting — KQL
kql
DeviceNetworkEvents | where InitiatingProcessFileName has "Plex Media Server" | where RemoteIP == "169.254.169.254" or RemoteIP startswith "127." | summarize count() by DeviceName, RemoteIP, RemotePort, bin(Timestamp, 1h)
Hunting — SPL
spl
index=* process_name="Plex Media Server*" (dest_ip="169.254.169.254" OR dest_ip="127.0.0.1") | stats count by host, dest_ip, dest_port

Atomic Red Team Tests

Test 1 Simulate SSRF to cloud metadata endpoint
linux

Issues an outbound HTTP request to the cloud instance metadata IP from the host to emulate the SSRF server-side fetch primitive.

Command

bash
curl -s -m 5 http://169.254.169.254/latest/meta-data/iam/security-credentials/ || true

Cleanup

bash
echo 'no cleanup required (read-only request)'

Expected Telemetry

Outbound NetworkConnect event to 169.254.169.254 on port 80 from the issuing process

Expected Detection

KQL/SPL/EDR rules flag an outbound connection to the metadata endpoint; if executed by the Plex process, the primary rule fires.

Test 2 Simulate SSRF internal port scan to loopback service
linux

Connects to a loopback-bound administrative port to emulate SSRF-driven internal service discovery.

Command

bash
for p in 2375 6443 9200 8080; do curl -s -m 2 http://127.0.0.1:$p/ || true; done

Cleanup

bash
echo 'no cleanup required'

Expected Telemetry

Multiple loopback NetworkConnect events to administrative ports in a short window

Expected Detection

Detection surfaces loopback/internal admin-port connections attributed to the server process.

Test 3 Windows SSRF metadata fetch simulation
windows

Uses PowerShell to issue an outbound request to the cloud metadata endpoint to emulate the SSRF fetch on a Windows Plex host.

Command

powershell
powershell -c "try { Invoke-WebRequest -Uri 'http://169.254.169.254/latest/meta-data/' -TimeoutSec 5 -UseBasicParsing } catch {}"

Cleanup

powershell
powershell -c "echo 'no cleanup required'"

Expected Telemetry

DeviceNetworkEvents ConnectionSuccess to 169.254.169.254 from the initiating process

Expected Detection

KQL DeviceNetworkEvents rule flags the outbound metadata connection.

Related Detections