PHP2Shell explodierte: CVSS 9.2, am Tag vor der Eröffnung, und die beiden Löcher waren 10 Jahre lang im Code.
Erstens:PHP produzierte einen nicht autorisierten Ferncode für CVSS 9.2, Nummern CVE-2026-109618 und CVE-2026-109619, mit einem Spitznamen PHP2Shell. Am 20. Oktober wurde es veröffentlicht und am 21. Oktober um 1400 UTC wurden Patches veröffentlicht, während Amazons Honigkanister am 17. Oktober aufgezeichnet wurden - vier Tage vor der Eröffnung.
Was noch schlimmer ist, ist die andere Sache: Diese beiden Löcher sind die ersten, die zu PHP 5.4 gelangen, was bedeutet, dass...Sie sind seit über einem Jahrzehnt im Code.Ich weiß es nicht. Und im Jahr 2024, als das PHP-Core-Entwickler-Audit den Weg von OOM entdeckte, traf sich das Team, um zu besprechen, wie es behoben werden kann.Wir waren nicht einverstanden und haben es dann nicht behoben.Ich weiß es nicht. Der Grund ist, dass niemand dachte, es könnte wirklich verwendet werden.
Dieser Satz sieht jetzt besonders ironisch aus. Der Grund dafür, dass dies nicht möglich ist, ist nicht, dass das Loch unbedeutend ist, sondern dass die Kette zu komplex ist, um über die physischen Fähigkeiten menschlicher Forscher hinauszugehen. Dann kam AI und schrieb es aus.
Erstens, das Wort "multinationale Notfallreaktion" aus dem Weg räumen. Schauen Sie.
Das Lieblingswort der Titelpartei ist "globaler Alarm". Diesmal ist es keine Übertreibung, aber es ist eine klare Punktzahl.
- PHP Offizieller: Eine Vorabmitteilung wurde am 20. Oktober herausgegeben, die besagt, dass am 21. Oktober um 14:00 Uhr UTC in einer sicheren Version veröffentlicht würde, wenn die Details durchgesickert oder ins Feld gebracht würden. Infolgedessen wurde die CVE-Nummer am selben Tag auf Hacker News erstochen, und die für den 22. Oktober geplante Veröffentlichung wurde auf einen Tag früher gezwungen.
- CERT-EU: Release Advisory 2026-018 und beinhalten beide CVEs.
- WolkenflöteAm 21. Oktober sagte CTO Dane Knecht direkt: "Der frühe Angriff wurde sichtbar", und die WAF-Regeln wurden vollständig veröffentlicht, einschließlich kostenloser Benutzer. Aber er betonte sich selbst, dass es nur eine Notlösung war, und die wirkliche Lösung war das Patchen.
- Amazon Threat InformationenMadPot Honigdosen wurden am 17. Oktober beim Versuch erwischt, und eine weitere Charge wurde am 21. Oktober gefangen, und die Nutzlast und die Infrastruktur wiesen auf eine Reihe verschiedener Angreifer hin. php2shell "ist bereits weit verbreitet".
- Watch TowrBeide Löcher sind wieder aufgetaucht, während Versuche, beide auszunutzen, beobachtet werden.
"Der Angriff wurde gefunden" ist also keine Darstellung, sondern eine Tatsache. Und die multinationale Notfallreaktion ist kein Schlag - es ist nur so, dass die Hauptthemen der Reaktion Hersteller, CDNs und Notfallorganisationen sind, keine Regierung im Land.
Zwei, zwei Löcher, zwei völlig unterschiedliche Arten zu sterben.
Viele Leute denken, es ist ein Loch mit zwei Zahlen, nein. Dies sind zwei separate Angriffsrouten, jede CVSS 9.2.
CVE-2026-109618: Bombe, wenn das Gedächtnis erschöpft ist
Die Bearbeitung einer Anfrage wird unterbrochen, wenn die PHP-Speicherverteilung ausfällt. Das Problem ist:Zu diesem Zeitpunkt wurden die internen Anforderungsdaten möglicherweise nur halb initialisiert, und die nachfolgende Bereinigungslogik hätte dieses nicht integrierte Stück schlechter Daten als gültige Daten verwendet.
Die Triggermethode ist einfach: Konstruieren Sie eine mehrteilige Anforderung, um den Speicher zu implodieren. Das Seltsame ist,Die Größe der Anfrage scheint Ihrer Decke zu entsprechen.Es ist nicht die Post max Größe, die Sie eingerichtet haben, es ist die Dekodierung und der Verbrauch der internen Verarbeitung.
Das Schlimmste ist Mod PHP. Mod php für Apache beim Anfordern des Starts fehlgeschlagenEs wird immer noch aufräumen., so dass diese Kette abgeschlossen werden kann, bevor ein anwendbarer Code ausgeführt wird. Ihr PHP-Code ist so sauber, es gibt keine Lücke, es gibt kein Stoppen.
PHP-FPM wird den Arbeiter töten, wenn es nicht startet, nur um die Kette zu schneiden, so offiziell, mod php ist das höchste Risiko. Aber aufgepasst - das bedeutet nicht, dass das FPM sicher ist.Nach erfolgreichem StartEs besteht immer noch die Möglichkeit der Ausbeutung.
CVE-2026-109619: Schmutziger Zustand zwischen Anfragen
Dieser hier ist schlimmer. PHP verwendet den Worker-Prozess erneut, um mehrere Anfragen zu verarbeiten. Die letzte Anfrage zum Freigeben des Speichers, der Zeiger bleibt im internen Zustand; die nächste Anfrage kommt herein,Lesen Sie die leere Adresse vor der normalen Initialisierung.Ich weiß es nicht.
Fatale Fehler (Erschöpfung des Speichers, Performance Timeout) unterbrechen die Zustandsbereinigung. Schlimmer noch, einige nicht-tödliche Diagnose während der Abschaltung hätte den falschen Zustand ersetzt.Redo it.Ich weiß es nicht.
Zu den offiziell bestätigten Pathways gehören: RCEs mit fatalem Fehler, wenn PHP 8.5 Fatal Error Backtraces aktiviert (Standardöffnung) und die Session Life Cycle RCEs auf Motor PHP und FPM.session.upload_progress Standardmäßig können Sie als früher Verbraucher in einem Zustand des Schmutzes handeln.Und es gibt keine Notwendigkeit, call(s) anzuwendenIch weiß es nicht.
Dieses Loch ist immer noch angebracht.SpeicherleckageIch weiß es nicht. Was war undicht? ist das Passwort, Token, API-Schlüssel, Zertifikat für andere Anforderungen im Prozessspeicher. Wiz direkt im Vergleich zu Heartbled, was nicht zu viel ist.
Timeline, mehr als Titel Look.
| Uhrzeit | Was ist passiert? |
|---|---|
| Jahr 2024 | PHP-Core-Entwickler-Audit fand OOM, dass Bug, das Team hatte keinen Konsens über das Gesetz, legte es auf Eis. |
| 2026-08 | Ryan Austin von Calif identifiziert Schlupflöcher mit OpenAI GPT-5.6 Sol; Wiz Independent Discovery |
| 2026-10-17 | Amazon MadPot, der Honig kann einen Versuch aufzeichnen, vier Tage vor der Eröffnung. |
| 2026-10-20 | CVE-Nummer durchgesickert in Hacker News und Social Media, PHP |
| 2026-10-21 | 14:00 UTC Veröffentlichung 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
Der 17. Oktober muss ausgesondert werden.Der öffentliche Tag war der 20., aber der Angriff fand am 17. statt.Der Amazon-Vorschlag ist einfach: Der Ausgangspunkt sollte nicht am Offenlegungsdatum liegen, sondern bis mindestens 17. Oktober.
Wie die Angreifer die Informationen im Voraus erhielten, sagte der Amazonas "nicht klar". Ich kann nicht darauf eingehen, aber Sie müssen eine Realität akzeptieren.Der Tag der Offenlegung war nie der Tag des Angriffs, aber der Tag, den Sie endlich wussten.
Vier, diesmal ist es wirklich AI.
Wiz' Blog enthält einen Satz, den ich zweimal gelesen habe: "Diese zugrunde liegenden Fehler existieren seit Jahrzehnten, aber um zu beweisen, dass sie verwendet werden können, brauchen sie eine außergewöhnlich komplexe Kette von Schritten, am Rande der tatsächlichen Fähigkeiten menschlicher Forscher."Das Frontline-AI-Modell senkt diesen Schwellenwert erheblich.Ich weiß es nicht.
Konkret: Ryan Austin, ein Forscher in Kalifornien, wurde im OpenAI-Projekt "Patch the Planet" mit GPT-5.6 Sol gefunden. Wiz fand das gleiche problem unabhängig. Um es zu nutzen, brauchen wir eine Kette von Fehlern und zielen auf jedes Ziel.Speicherlayout wiederholt kalibriertWiz sagt, dass das Frontlinienmodell es ihnen ermöglicht, innerhalb von Stunden verwendbare Anwendungen für verschiedene Anwendungen zu entwickeln.
Es bedeutet nicht "KI hat wieder gewonnen".Der Punkt ist, dass der Graben des "Komplexes" versagt.
Viele alte Schlupflöcher wurden in den letzten zwei Jahrzehnten nicht geschlagen, nicht weil sie nicht ernst sind, sondern weil die Nutzungsschwelle zu hoch ist - ein paar Wochen Investitionen von Spitzenforschern und ein bisschen Glück. Also setzen Sie sie in die Spalte "theoretisch riskant". Jetzt ist dieser Zaun weg.
Diese zehn Jahre alten Löcher, die in Ihrem System liegen und als "schwierig und unbearbeitet" bewertet werden, müssen neu bewertet werden.
Fünf, zu welchem solltest du gehen?
| Zweigstelle | Betroffene Version | Entsorgung |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Erhöhung auf 8,5.12. |
| PHP 8.4 | < 8.4.27 | Erhöhung auf 8.4.27. |
| PHP 8.3 | < 8.3.36 | Auf 8.3.36 erhöhen. |
| PHP 8.2 | < 8.2.35 | Auf 8.2.35 erhöhen. |
| PHP 7.4 / 8.0 / 8.1 | alle | Offiziell unveröffentlicht, nur Source Level |
| PHP 5.4 – 7.3 | alle | EOL, die Regierung repariert es nicht. Geschäftsbetrieb |
Mehrere reale Erinnerungen:
- Linux Release und LTS VendorHabe im Voraus einen Patch bekommen.Überprüfen Sie die Beratung Ihres Herstellers mit einem Distributionspaket. Überstürzen Sie den Quellcode nicht.
- Verwendung
rpms.remirepo.netHinweis: PHP hat die Quelle am 21. Oktober offiziell angegeben.Keine AktualisierungSo können Sie zu einem Distributionspaket wechseln oder es aus dem Quellcode machen. - Die Windows-Binärdatei von PHP 8.5 befindet sich ebenfalls auf der offiziellen Download-Seite.
- Denken Sie nicht, dass es in Ordnung ist, im Container zu laufen - die PHP-Version des Containerspiegels muss überprüft werden.
Sechs, wenn Sie keinen Patch bekommen können, machen Sie diese vier zuerst.
Erster Staat:Keiner von diesen unten wird Sie sicher machen.Der offizielle PHP-Ausdruck lautet: "Verringern Sie die Exposition gegenüber bestimmten Angriffspfaden, aber machen Sie die Installationen nicht sicherer". Ihr Wert ist es, Ihnen Zeit zu geben, Patches zu bekommen.
Speicherlimit auf -1 einstellen
Zweck: Das Herausnehmen der vorhersagbaren PHP-Speicherkappe ist fehlgeschlagen, d. H. CVE-2026-109618 hat die Triggerbedingung bestätigt, von der sie abhängt.
Der Punkt ist,Wie?: an Orten festgelegt werden, an denen die Anwendung unverändert ist, z. B. im FPM-Pool php_admin_value oder Apache Konfiguration. Sie müssen überprüfen, ob keine Pops, Verzeichnisse und Anwendungseinstellungen vorhanden sind, um das Limit hinzuzufügen.Dann starten Sie jeden Arbeiter neu.
Der Preis ist klar: Sie sind aus dem PHP-eigenen Speicherzaun, und der Fehler in der unteren Verteilung kann immer noch auf diesem gefährlichen Weg liegen. Es muss also ein Container oder eine Cgroup sein, um die Deckung zu begrenzen - aber es ist nur eine Strategie, "betroffene Menschen zu töten".Verwenden Sie niemals RLIMIT AS oder RLIMIT DATADiese beiden sind genau die Art von Verteilungsfehlern, die die Schlupflöcher schaffen.
Reduzieren Sie Post max Größe
Sites ohne Datei 8M zu Datei 32M und garantiert upload_max_filesize Weniger als das. Gleichzeitig werden dem Webserver oder der Proxyschicht Grenzen hinzugefügt - das Volumen der dekodierten Anforderungen, die Anzahl der Felder, die Anzahl der mehrteiligen Teile, die Anzahl der Köpfe, die Tiefe der Nester.Diese Einschränkungen müssen Anfragen abdecken, die keine gültige Inhaltslänge habenOder wir gehen um sie herum.
3. Den Session.upload-Prozess ausschalten
session.upload_progress.enabled = 0
Es ist in php.ini, FPM-Tool oder Server-Konfiguration geschrieben.Es muss vor dem Antrag wirksam sein.Ich weiß es nicht. Verwendung ini_set() Oder FPM. .user.ini Es war zu spät - es war schmutzig. Änderung bedeutet auch, alle Workker neu zu starten.
PHP 8.5 Noch eine Single
fatal_error_backtraces = 0
Dieser Block bestätigte nur fatale Fehler-Backtracks, ohne andere Varianten. Erfordern Sie auch Einstellungen auf Administratorebene + Neustart Workker.
Darüber hinaus wird die offizielle Erwähnung, die viele ignorieren werden:Beheben Sie die fatalen Fehler, die die Angreifer auslösen und ausführen können., einschließlich Backup, Upload, Importverarbeitung, Bereinigungsfehler. Und...Löschen veralteter oder illegaler Konfigurationen, die auf Anforderungsbasis auferlegt werden- Sie spucken diagnostische Informationen aus, bevor sie initialisiert werden, und füttern das Leck.
Dieser letzte Satz wird am leichtesten missverstanden:Es funktioniert nicht, die Diagnose mit Fehlermeldungen, Anzeigefehlern oder @ zu verbergen.Es passiert nicht.
VII. ECHTE SCHREIBEN DAVON
Ich möchte nicht abschließen, indem ich "Close the patch" schreibe. Natürlich ist es ein Patch. Es ist heute. Aber einige Urteile müssen sich ändern.
- Der Begriff "schwierig zu verwenden" ist nicht mehr dasselbe wie "verschrieben".PHP die Zugriffskette dieses Lochs ist kompliziert genug, um die Hilfe von AI zu benötigen, die bereits geholfen hat. Die alten Löcher in Ihrer Asset-Liste, die "Theorierisiko" markieren, sollten neu bewertet werden.
- Sprache läuft an einem einzigen Punkt.WordPress, Drupal, Joomla, Magento, MediaWiki laufen alle auf PHP, Ihr Anwendungscode-Audit ist sauber und der PHP-Kern ist in Schwierigkeiten. Kompensatorischer Rhythmus von Infrastrukturschichten mit getrennten Anwendungsschichten.
- "Der Anwendungscode ist defekt, ohne zu laufen." WAF kann nur verzögern.Cloudflare selbst sagte, es sei eine Notlösung. WAF als Lösung zu setzen bedeutet, der Regelabdeckung Leben zu geben.
- Es gibt viele alte Websites im Land, die PHP verwenden.Diejenigen Stationen, die auf PHP 5.6/7.0 laufen, die vor langer Zeit nicht gewartet und auf einem Cloud-Mainframe aufgehängt wurden, sind in dieser Exposition von 1,3 bis 1,9 Millionen. Sie werden keine Mitteilung erhalten.
Datenkalibrierungen werden aufgezeichnet: W3Techs sagt, dass PHPs 69,3 Prozent der Sprachen ausmachen, die dem Dienst bekannt sind, und Wiz 70 Prozent; Expositionshosts, der Sicherheitsforscher Silas Cutler, schätzen über 1,3 Millionen und Henk Poleys Shodan-Suche sind über 1,9 Millionen. Diese Zahlen haben unterschiedliche Kaliber und verwenden sie nicht als genaue Werte, aber die Skala ist die gleiche -Millionen, weltweit.
Ein weiteres Detail ist erwähnenswert: Als die CVE-Nummer durchgesickert war, waren die CVSS-Punkte, die herauskamen, 10,0, PHP wurde offiziell bestätigt.Das Ergebnis war falsch.Es ist eigentlich 9.2. Niemand würde etwas über dieses Detail wissen, aber es wird immer im Umlauf sein. Wenn Sie 10.0 sehen, wissen Sie, welche Welle es ist.
Ein 10-jähriges Loch, zwei Monate KI-gestützte Forschung, vier Tage frühe Nutzung, eintägiges Patchfenster. Diese Zeitskala ist die normale aller grundlegenden Software, die folgt.
Überprüfen Sie die Version jetzt.php -vOder schauen Sie sich Ihre Containerspiegel bei Tag an. Warten Sie nicht auf morgen.