Eine Woche, vier Ökosysteme: Vorfälle in PHP, Node und Python, Oktober 2026
Zwischen dem 14. und 22. Oktober 2026 haben PHP und Node.js am selben Tag Sicherheitsreleases für Remote-Code-Execution-Lücken veröffentlicht, die Zwischenschlüssel einer Zertifizierungsstelle wurden widerrufen, eine Hosting-Plattform meldete Zugriff auf Umgebungsvariablen ihrer Kunden, und zu zwei Paketen, eins auf npm und eins auf PyPI, gab es Berichte über eingebaute Credential-Stealer. Jede dieser Geschichten hat einen eigenen Beitrag in diesem Blog. Dieser hier legt sie auf eine Linie, denn zusammen gelesen führen sie zu einer kurzen Liste von Gewohnheiten, die das meiste abdeckt.
Die Woche der Reihe nach
Eine Woche vorher, am 8. Oktober, berichtet der Tracker pwn.watch, dass tensorlake 0.5.144 aus dem echten Repository und mit Provenance auf npm veröffentlicht wurde, mit einem Wurm, der Zugangsdaten stiehlt (Provenance ist keine Sicherheit). Am 14. Oktober hat Vercel laut demselben Tracker Next.js 16.4.1 und 15.5.28 außerplanmäßig für zwei kritische RCEs ohne Authentifizierung ausgeliefert; das GitHub-Advisory zur SVG-Lücke bewertet sie mit CVSS 9.5 (der Next.js-Beitrag). Am 18. und 19. Oktober erwiesen sich laut Tracker Zwischen-CA-Schlüssel von eMudhra als schwach und wurden widerrufen; eMudhra gibt an, die betroffenen CAs innerhalb von 14 Stunden nach der Entdeckung widerrufen zu haben (Trust Stores).
Am 20. Oktober veröffentlichte php.net einen Eintrag mit dem Titel "Upcoming Critical PHP Security Release"; laut Tracker waren Details schon vorab durchgesickert. Am 21. Oktober behoben PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 zwei kritische RCEs ohne Authentifizierung (PHP jetzt aktualisieren), und Node.js 26.12.1, 24.22.1 und 22.23.4 behoben zehn Schwachstellen, darunter eine RCE im Brotli-Decoder (das Node-Release, dazu zwei kleinere Node-Fixes). Am selben Tag meldete Railway, dass ein Dritter möglicherweise entschlüsselte Umgebungsvariablen von Kunden erlangt hat (Secrets rotieren), und der Tracker berichtet von einem kompromittierten LiteLLM 1.107.0 auf PyPI und Docker (ein Paket, alle deine Keys). Am 22. Oktober kündigte eMudhra den Ausstieg aus dem Geschäft mit TLS-Zertifikaten an, und die Erhebung von W3Techs zeigte, dass 34.7% der PHP-Sites, die sie erkennen kann, noch auf PHP 7 oder älter laufen (PHP am Lebensende).
Vier Muster
Das sind Muster, die ich quer durch die Quellen lese, keine Ursachen, die irgendwer bestätigt hat.
Der Fix ist eine Versionsnummer. PHP und Node.js haben beide mit gepatchten Releases reagiert, und beide sagen, dass Linien am Lebensende außen vor bleiben: Laut php.net bekommen 8.1 und älter keine Updates mehr vom Projekt, und Node.js schreibt, dass End-of-Life-Versionen bei einem Sicherheitsrelease immer betroffen sind. Wer nicht weiß, welche Version in Produktion läuft, kann nicht sagen, ob er gepatcht ist.
Vertrauen ist geschichtet, und es wird mit ausgeliefert. Eine CA-Liste, die mit der Runtime kommt (Node.js hat sein ca-cert wegen eMudhra aktualisiert), ein Paket mit Provenance, der Secret-Speicher einer Plattform, eine Release-Pipeline. Jede Schicht ist etwas, dem man ungeprüft vertraut, und genau deshalb kann ein Einbruch in einer Schicht unbemerkt in die nächste wandern.
Zugangsdaten sind die Beute. Drei der Vorfälle, der npm-Wurm, das LiteLLM-Release und die Meldung von Railway, drehen sich ums Einsammeln von Secrets, nicht darum, den Code der App selbst zu knacken. Railway geht nach eigener Aussage davon aus, dass sein Vorfall zu einer Serie gehört, die auf Anbieter von KI-Inferenz zielt.
Langweilige Gewohnheiten decken das meiste ab. Das ist die gute Nachricht, und sie ist der letzte Abschnitt.
Die Checkliste für diese Woche
Fang bei den Versionen an, an allen Stellen, an denen sie sich verstecken: Webserver, CLI, Docker-Basisimage und CI. Auf der Kommandozeile:
php -v
node -v
composer audit
npm ls next sharp
Denk daran, dass php -v die CLI zeigt, und die kann von dem abweichen, was Webanfragen bedient. Danach: PHP auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 und Node.js auf 26.12.1, 24.22.1 oder 22.23.4 patchen; den Abschied von jeder Linie planen, die keine Fixes mehr bekommt; die Liste der Secrets aufschreiben, die deine App hält, und wie sich jedes rotieren lässt; und Produktions-Secrets von Entwicklerrechnern fernhalten, denn genau dort sucht Malware beim Installieren danach. Wenn du heute nur eine Sache machst, finde heraus, welche PHP- und Node.js-Versionen in deiner Produktion tatsächlich laufen.
Frühere Beiträge, die tiefer in diese Gewohnheiten gehen: die ersten zehn Minuten nach einem geleakten Key, Malware beim Installieren, Lockfiles für Workflows und einen Coding-Agenten in die Sandbox stecken.
Quelle: News-Archiv von php.net, 2026; jeder verlinkte Beitrag nennt seine eigene Primärquelle.
Notizen der Leser