Ein Medienserver ist das harmloseste, was man ins Internet stellen kann. Diesen Monat ist er auch das teuerste.
Am 20. Oktober 2026 hat CISA vier Schwachstellen im Plex Media Server auf einmal in den Katalog der aktiv ausgenutzten Lücken aufgenommen. Verkettet erlauben sie einem Angreifer ohne Zugangsdaten, ein Admin-Token zu erbeuten und Code mit den Rechten des Plex-Prozesses auszuführen. Der Entdecker bewertet die Kette mit 9,8.
Der gepatchte Build 1.43.3.10861 erschien am 4. August. Alles, was seitdem passiert ist, handelt vom Abstand zwischen einem vorhandenen und einem installierten Fix, und nur dieser Teil liegt bei Ihnen.
Die Chronologie, denn sie ist das Argument
| Datum | Ereignis |
|---|---|
| 27. Juli 2026 | Forscher Zach Main meldet die Kette an Plex |
| 3.-4. August 2026 | Plex Media Server 1.43.3.10861 mit dem Fix erscheint |
| Anfang September 2026 | Shadowserver zählt über 36.000 aus dem Internet erreichbare, ungepatchte Server |
| 16. Oktober 2026 | Vollständige technische Analyse veröffentlicht |
| 17. Oktober 2026 | Erste Ausnutzung in freier Wildbahn beobachtet, gegen Honeypots, mit einem Kryptominer |
| 19. Oktober 2026 | Öffentlicher Proof-of-Concept-Exploit auf GitHub |
| 20. Oktober 2026 | CISA nimmt alle vier CVEs in den KEV-Katalog auf |
| 23. Oktober 2026 | Behördliche Frist für die beiden schwersten davon |
Elf Wochen Vorwarnung. Sechsunddreißigtausend Server, die sie nicht genutzt haben.
Was die Kette tatsächlich ist
Vier Befunde, jeder für sich unauffällig, und genau deshalb blieben sie unbemerkt:
- CVE-2026-96652 (CVSS 5,3), Server-Side Request Forgery: Plex lässt sich dazu bringen, POST-Anfragen an beliebige Ziele zu senden, auch an die eigenen internen APIs.
- CVE-2026-96654 (CVSS 6,9), URL-Injection: vom Angreifer kontrollierte Parameter erreichen Funktionen anderer Plugins.
- CVE-2026-96655 (CVSS 5,3), eine weitere SSRF, diesmal im Transcoder-Endpunkt.
- CVE-2026-96656 (CVSS 8,6), beliebiges Schreiben von Dateien in den Transcoder-Einstellungen: eine Shared Library lässt sich dort ablegen, wo Plex sie lädt.
Lesen Sie den letzten Punkt noch einmal, denn er ist das Muster, das Sie auf jeden anderen Dienst übertragen sollten: ein Prozess, der Dateien schreibt und später Code aus genau dem Verzeichnis lädt, in das er schreibt, ist einen Schreibfehler von Codeausführung entfernt. Codecs, Plugins, Themes, Erweiterungen, Uploads mit Include-Pfad. Die Einzelwertungen sind mittel. Die Kette ist 9,8.
Die Ausnutzung braucht Netzwerkzugriff auf TCP-Port 32400. Die Remote-Access-Funktion von Plex oder eine manuelle Portweiterleitung macht aus einem Wohnzimmerdienst einen im Internet erreichbaren.
Diese drei Dinge zuerst
1. Prüfen Sie die vollständige Build-Nummer, nicht die Marketingversion.
# Paketinstallation unter Debian oder Ubuntu
dpkg -s plexmediaserver | grep '^Version'
# offizielles Docker-Image
docker exec plex dpkg -s plexmediaserver | grep '^Version'
# jede Installation, vom Server selbst: der Identity-Endpunkt antwortet ohne Token
curl -s http://127.0.0.1:32400/identity
Alles unterhalb von 1.43.3.10861 ist betroffen. Ein früher 1.43.3-Build ist weiterhin betroffen: entscheidend sind die letzten fünf Ziffern.
2. Aktualisieren Sie und prüfen Sie dann, ob der laufende Prozess der neue ist. Ein Container, der nie neu gezogen wurde, oder ein durch einen Pin zurückgehaltenes Paket meldet in der Oberfläche fröhlich eine neue Version, während weiterhin die alte Binärdatei ausliefert.
docker compose pull plex && docker compose up -d plex
docker exec plex dpkg -s plexmediaserver | grep '^Version'
3. War der Server auf einem alten Build aus dem Internet erreichbar, nehmen Sie an, dass er erreicht wurde. Plex’ eigener Hinweis sagt, solche Server als möglicherweise kompromittiert zu behandeln, und nennt Indikatoren: unbekannte .so- oder .dll-Dateien im Codecs-Verzeichnis und ausgehende Verbindungen zu proxystream.st. Prüfen Sie beides, bevor Sie die Sache abhaken:
# unerwartete Shared Libraries im Codec-Verzeichnis
find ~/Library/Application\ Support/Plex\ Media\ Server/Codecs \
/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs \
-name '*.so' -o -name '*.dll' 2>/dev/null | sort
# alles, womit die Maschine spricht und was Sie nicht benennen können
ss -tn state established | awk 'NR>1{print $4}' | sort | uniq -c | sort -rn | head -20
Ein Kryptominer verrät sich über die CPU-Last. Proxyware nicht: es verkauft Ihre Adresse als Wohnanschluss-Bandbreite und bleibt leise. Fehlende Last ist kein Beleg für fehlende Kompromittierung.
Die Checkliste, die Sie ohnehin gerettet hätte
Nichts davon setzt voraus, dass Sie eine CVE vorher kennen. Genau darum geht es: Diese Maßnahmen zahlen sich in den Wochen aus, in denen Sie noch nicht gepatcht haben, und das betrifft jeden Dienst, immer.
Leiten Sie keinen Port ins Internet weiter, nur damit Sie selbst zugreifen können. Remote Access und eine Portweiterleitung existieren für Menschen, die nicht in Ihrem Netz sind. Wenn der einzige entfernte Nutzer Sie selbst sind, entfernt ein WireGuard-Tunnel oder ein Mesh-VPN die Angriffsfläche vollständig, statt sie zu verteidigen. Erreichbarkeit ist eine Entscheidung, und meistens trifft sie niemand bewusst.
Eingehend standardmäßig verbieten, offene Ports aufschreiben. Auf einer Maschine mit mehreren Diensten ist die Firewall der einzige Ort, an dem sich “was ist erreichbar” auf einem Bildschirm beantworten lässt:
ufw default deny incoming
ufw allow 443/tcp
ufw status numbered
Lesen Sie die Ausgabe von oben nach unten und fragen Sie, was zuerst greift. Auf einer Altmaschine, die wir diesen Monat geprüft haben, stand eine sorgfältige Allowlist mit drei Subnetzen vier Zeilen unter einem pauschalen ACCEPT für denselben Port aus 0.0.0.0/0, hatte also nie irgendetwas eingeschränkt. Das vollständige Audit steht hier.
Stellen Sie HTTP-Dienste hinter einen Reverse Proxy, nie direkt ins Internet. Eine TLS-Konfiguration, ein Zugriffslog, eine Stelle für Authentifizierung. Das Muster, das wir auf genau dieser Seite betreiben, steht vollständig in Caddy und Docker im Produktivbetrieb. Kurzfassung für einen Dienst, der gar keinen öffentlichen Zugriff braucht:
media.example.com {
@notlocal not remote_ip 10.0.0.0/8 100.64.0.0/10 192.168.0.0/16
respond @notlocal 403
reverse_proxy 127.0.0.1:32400
}
Binden Sie den Dienst an localhost und lassen Sie den Proxy die einzige Tür sein. Ein Container, der mit -p 32400:32400 veröffentlicht wird, hängt an jeder Schnittstelle des Hosts, auch an der öffentlichen; -p 127.0.0.1:32400:32400 nicht. Dieser Unterschied von wenigen Zeichen ist die häufigste versehentliche Freigabe, die wir finden.
Behandeln Sie ausgehenden Verkehr als etwas, das Sie interessieren darf. Beide hier beobachteten Payloads, Miner und Proxyware, sind ohne Egress nutzlos. Eine Maschine zu Hause oder im kleinen Büro hat nichts damit zu tun, beliebige ausgehende Verbindungen zu öffnen, und eine Basislinie, die Sie vergleichen können, ist mehr wert als jede IOC-Liste, die erst nachträglich erscheint.
Wissen Sie, wie Sie neu aufsetzen würden, und testen Sie es. Nach dieser Art von Kompromittierung lautet der ehrliche Rat: saubere Neuinstallation. Das überlebt nur, wessen Daten anderswo liegen und wer das Zurückspielen schon einmal gemacht hat, statt es unter Druck zu lernen. Wo dieses Anderswo sein sollte, mit echten Preisen auf echten Daten, steht in unserem Vergleich der Backup-Speicher.
Abonnieren Sie die Release Notes von allem, was Sie exponieren. Elf Wochen sind kein Pech, sondern eine ungelesene Mailingliste. Bei einem selbstgehosteten Dienst hat der Hersteller keine Möglichkeit, Sie zu erreichen, und keine Pflicht, es zu versuchen.
Was wir nicht wissen
Wir haben selbst keinen kompromittierten Host von innen gesehen und tun auch nicht so. Die Indikatoren oben stammen von Plex, die Zahlen zur Erreichbarkeit von Shadowserver, die CVSS-Werte vom Forscher und die Daten zur Ausnutzung von den Herstellern und CISA. Unser Beitrag ist der Teil, für den wir geradestehen: was das Muster für den Rest Ihres Stacks bedeutet und welche Konfiguration wir tatsächlich betreiben.
FAQ
Welche Plex-Version behebt Plex2Shell? 1.43.3.10861 und neuer, erschienen am 4. August 2026. Ältere Builds sind betroffen, auch frühere 1.43.3-Builds.
Ist mein Plex-Server gefährdet, wenn er nicht im Internet steht? Die Kette braucht Netzwerkzugriff auf TCP-Port 32400. Ein nur im LAN erreichbarer Server ist aus diesem LAN weiterhin angreifbar, ein kompromittiertes Notebook oder ein fremdes Gastgerät genügt also. Das ist ein kleineres Risiko, kein theoretisches.
Woran erkenne ich, ob mein Plex-Server bereits kompromittiert wurde?
Plex nennt zwei Indikatoren: unbekannte .so- oder .dll-Dateien im Codecs-Verzeichnis und ausgehende Verbindungen zu proxystream.st. Beobachtete Payloads waren Kryptominer und Proxy-Malware. War der Server auf einem alten Build aus dem Internet erreichbar, ist Kompromittierung die sichere Annahme.
Beseitigt ein Update eine bestehende Kompromittierung? Nein. Der Patch schließt die Tür, er entfernt nichts, was bereits drinnen ist. Nach einer bestätigten Kompromittierung ist der einzige saubere Weg ein Neuaufbau aus vertrauenswürdigen Quellen plus eine überprüfbare Wiederherstellung der Daten.
Soll ich Plex Remote Access einfach abschalten? Wenn Sie der einzige sind, der von außerhalb streamt, ja, und greifen Sie stattdessen über ein VPN zu. Remote Access ist die Funktion, die Port 32400 ins Internet stellt, und die 36.000 im September gezählten erreichbaren Server waren überwiegend keine bewussten Entscheidungen.
Wie es weitergeht
Wenn Sie das zu einem Blick auf den Rest Ihres Stacks bewegt hat: Das einstündige Audit für einen übernommenen Server ist die Checkliste, die wir auf einer unbekannten Maschine benutzen, und der VPS-Vergleich behandelt, wohin ein Dienst gehört, den Sie lieber nicht zu Hause betreiben.