PHP Security · 21. Oktober 2026

Die PHP-Lücke,
ohne den Lärm.

Zwei ernste Lücken. Ein Update schließt sie. Alles andere verschafft dir nur Zeit.

CVE-2026-109618 · CVE-2026-109619 · CVSS 9.2


01 — Erste Frage

Bist du betroffen?

Nicht raten, nachsehen. Zwei Befehle genügen. Der erste zeigt deine Version, der zweite, ob der bekannteste Angriffspfad bei dir offensteht.

# Welche Version läuft?
php -v

# Ist eine riskante Funktion eingeschaltet? (On heißt: ja)
php -i | grep upload_progress

Gepatcht ab

8.5.12Fix enthalten sicher
8.4.27Fix enthalten sicher
8.3.36Fix enthalten sicher
8.2.35Fix enthalten sicher
alles darunterbetroffen updaten
7.x, 5.x (sehr alt)betroffen, kein Update mehr abschirmen

Jede PHP-Version der letzten rund zehn Jahre ist betroffen. Sehr alte Versionen wie 7.x und 5.x bekommen gar kein Update mehr. Für sie gilt der Abschnitt weiter unten.

02 — Was passiert da

Der Fehler, einfach erklärt.

Wenn PHP beim Abarbeiten einer Anfrage plötzlich der Speicher ausgeht, bricht es mitten in der Arbeit ab. Dabei bleibt ein Durcheinander zurück: halb fertige Daten und Verweise, die ins Leere zeigen. Die nächste Anfrage stolpert dann über dieses Durcheinander. Ein Angreifer kann es gezielt so vorbereiten, dass dabei sein eigener Code läuft oder geheime Daten nach außen fallen.

Der laute Teil

Der Angreifer bringt den Server dazu, fremden Code auszuführen, ganz ohne Login. Das zeigten die Videos. Beeindruckend, aber nur unter bestimmten Bedingungen (siehe unten).

Der leise Teil

Ein Datenleck. Aus dem Speicher des Servers können Passwörter, Zugangsschlüssel und Tokens nach außen tropfen, versteckt in einem Cookie. Dafür ist kein spektakulärer Trick nötig. Das ist der Fall, der im Alltag wirklich zählt.

03 — Wie gefährlich ist das?

Was alles passen muss.

Der spektakuläre Fall aus den Videos funktioniert nur, wenn sechs Dinge gleichzeitig zutreffen. Drei davon sind die normale Standardeinstellung. Drei weitere muss die betroffene Seite zusätzlich mitbringen, und das tun die wenigsten. Ernst, ja. Aber kein Ein-Klick-Hack, der überall klappt.

Standard

  • · upload_progress.enabled On
  • · save_path /tmp
  • · session id cookie

Nicht Standard

  • ∗ cleanup = Off
  • ∗ include() auf user-Pfad
  • ∗ Sink hängt keine Extension an

Die Begriffe oben sind Server-Einstellungen. Wichtig ist nur: die rechte Spalte ist selten komplett erfüllt.

Fachleute stufen die Lücke als schwer auszunutzen ein, aber mit großem Schaden, wenn es gelingt. Daher die hohe Bewertung von 9,2 von 10.

Am zuverlässigsten vorgeführt wurde der Angriff auf der klassischen Apache-Variante (mod_php). PHP-FPM ist über einen eigenen Pfad ebenfalls betroffen. Wie leicht es gelingt, hängt von Version und Betriebsart ab. Die Entdecker nennen bestätigte Treffer ohne Login in gängiger Software wie WordPress, Drupal, Joomla, MediaWiki, Nextcloud und phpMyAdmin unter Standardeinstellungen. Keine Betriebsart ist also außen vor.

04 — Kannst du nicht sofort updaten?

Was du sonst tun kannst.

Ein Update ist fast immer der einfachste Weg. Diese Liste ist für den Fall, dass es gerade nicht geht. Das Problem hat zwei Seiten, und die ersten beiden Punkte treffen je eine davon an der Wurzel. Keiner der Punkte schützt vollständig. Sie machen es dem Angreifer nur schwerer, bis du updaten kannst.

  1. memory_limit = -1 stärkster Hebel

    Nimmt dem Fehler die Grundlage. Der gefährliche Abbruch passiert, wenn PHP beim knappen Speicher mitten in einer Aktion aufgibt. Ohne dieses Limit gibt es diesen Abbruch nicht mehr. Wichtig: Auf geteilten Servern (Shared Hosting) kann dann eine einzige Anfrage sehr viel Speicher ziehen. Nur setzen, wenn der Server dir allein gehört oder der Speicher anders begrenzt ist.

  2. session.upload_progress.enabled = 0

    Schaltet eine Funktion ab, die kaum jemand braucht und die die zweite Seite des Problems öffnet. Danach die PHP-Prozesse neu starten.

  3. fatal_error_backtraces = 0

    Nur bei PHP 8.5. Nimmt einen weiteren Einstieg weg. Prozesse neu starten.

  4. pm.max_requests kleiner setzen

    Lässt den Server seine Arbeits-Prozesse öfter frisch starten. So überlebt kein Durcheinander von einer Anfrage zur nächsten.

  5. Datei-Uploads abweisen, wenn deine Seite keine braucht

    Solche Anfragen (Fachbegriff: multipart) schon vom Webserver mit einer Fehlermeldung ablehnen. Hilft zusätzlich, ersetzt aber Punkt 1 nicht.

  6. PHP-Grenzen enger stellen

    Maximale Upload-Größe klein halten, die erlaubte Verschachtelung von Eingaben senken, die Zahl der Teile pro Anfrage begrenzen. Auch das nur als Ergänzung.

  7. Einen verbreiteten Tipp NICHT befolgen

    Harte Speicher-Grenzen auf Betriebssystem-Ebene (RLIMIT_AS, RLIMIT_DATA) machen das Problem schlimmer statt besser. Finger weg.

05 — Woran du einen Versuch erkennst

Die Warnzeichen.

Die Angriffe spielen sich tief im Server ab, nicht in deiner Anwendung. In den normalen Besucher-Logs deiner Seite steht deshalb wenig. Schau in die Protokolle von Webserver und PHP.

Upload + Speicherfehler

Ungewöhnliche Datei-Anfragen, direkt gefolgt von Meldungen über zu wenig Speicher.

Viele Fehler 500

Immer wieder der Server-Fehler 500 auf dieselbe Adresse, kurz hintereinander.

Seltsame Session-Cookies

Unerwartet große oder kaputte Session-Cookies in der Antwort. Das deutlichste Zeichen für ein Datenleck.

Prozesse starten ständig neu

Die PHP-Prozesse stürzen ab und starten gehäuft neu, ohne erkennbaren Grund.

06 — Zum Nachdenken

Wie der Tag ablief.

Die Lücke war echt und wurde ordentlich gemeldet. Trotzdem wurde eine Panikwelle daraus. Hier, woran du erkennst, wem du glauben kannst.

Die richtige Haltung vor einer Reparatur: erst mal abwarten, der offiziellen Quelle glauben, Schutzmaßnahmen trotzdem vorbereiten. Weder der lautesten Stimme folgen noch sich zu früh sicher sein.

Primärquellen

Zum Selberlesen.

Kein Angriffscode, keine Links zu Werkzeugen. Nur das, womit du dir selbst ein Bild machst.