[{"data":1,"prerenderedAt":1481},["ShallowReactive",2],{"post-de-node2shell-warum-node-patchen-nicht-reicht":3,"related-de-node2shell-warum-node-patchen-nicht-reicht":397},{"id":4,"title":5,"author":6,"body":7,"category":367,"date":368,"description":369,"draft":370,"extension":371,"faq":372,"image":382,"imageAlt":383,"lang":384,"legacyUrl":385,"meta":386,"navigation":387,"path":388,"readingTime":389,"seo":390,"sitemap":391,"stem":392,"tags":393,"translation":395,"updated":385,"__hash__":396},"insightsDe\u002Fde\u002Finsights\u002Fnode2shell-warum-node-patchen-nicht-reicht.md","Node2Shell: Warum Node patchen allein nicht reicht","blacklens.io Team",{"type":8,"value":9,"toc":356},"minimark",[10,19,24,36,49,53,64,79,83,94,141,157,161,182,270,274,277,331,335,353],[11,12,13,14,18],"p",{},"Node.js hat am 21. Oktober 2026 Sicherheitsupdates für zehn Schwachstellen veröffentlicht. Die schwerste davon, ",[15,16,17],"code",{},"CVE-2026-111497",", erlaubt Remote Code Execution über manipulierte Brotli-Daten. Der fehlerhafte Code steht allerdings nicht in Node.js, sondern in der Kompressionsbibliothek, die Node.js mitliefert – und das entscheidet darüber, ob eine aktualisierte Node-Fassung die Lücke überhaupt schließt.",[20,21,23],"h2",{"id":22},"was-node2shell-ist","Was Node2Shell ist",[11,25,26,27,29,30,35],{},"Node2Shell ist der Name, unter dem Imperva am 22. Oktober seine Analyse von ",[15,28,17],{}," veröffentlicht hat: einem Out-of-Bounds-Write im Brotli-Decoder, den Node.js in den Zweigen 22.x, 24.x und 26.x mitbringt. Node.js stuft die Lücke als „high“ ein und hat sie am 21. Oktober behoben. Der CVE-Eintrag bewertet sie strenger, mit ",[31,32,34],"a",{"href":33},"\u002Fde\u002Fwissen\u002Fcvss","CVSS"," 9.2 nach Version 4.0 und der Stufe kritisch. Gemeldet haben sie Khai Tran und Sylvie Mayer von OpenAI Codex Security, den Fix entwickelten zwei Mitglieder des Node.js-Teams.",[11,37,38,39,43,44,48],{},"Die Lücke erschien am selben Tag wie ",[31,40,42],{"href":41},"\u002Fde\u002Finsights\u002Fphp2shell-kritische-rce-lucken-in-php","PHP2Shell"," und mit derselben Bewertung, CVSS 9.2. Auffällig ist, wer gemeldet hat: Bei PHP waren Forscher von OpenAI unter den Meldern, hier ist es dessen Codex-Security-Team. Wie viel davon auf KI-Werkzeuge zurückgeht, sagen die Advisories nicht – dass die Sicherheitsteams der KI-Anbieter in den Danksagungen stehen, ist seit ",[31,45,47],{"href":46},"\u002Fde\u002Finsights\u002Fclaude-mythos-wenn-schwachstellen-schneller-kommen-als-patches","April"," Routine.",[20,50,52],{"id":51},"der-fehler-liegt-in-brotli-nicht-in-nodejs","Der Fehler liegt in Brotli, nicht in Node.js",[11,54,55,56,59,60,63],{},"Der verwundbare Code steht in der Referenzimplementierung von Brotli, Googles Kompressionsformat, in ",[15,57,58],{},"c\u002Fdec\u002Fdecode.c",". Beim Dekomprimieren prüft der Decoder, ob ein Datenstrom auf einen anderen Blocktyp umschaltet. Meldete diese Prüfung einen Fehler, gab die zuständige Funktion ihn auf dem schnellen Dekodierpfad nicht weiter – ihre Aufrufer hatten keinen Rückgabewert dafür. Der Decoder arbeitete mit ungültigem internem Zustand weiter und schrieb dabei über den vorgesehenen Puffer hinaus. Der CVE-Eintrag führt das als ",[15,61,62],{},"CWE-252",", nicht geprüfter Rückgabewert; der Fix lässt die Funktionen einen Formatfehler zurückgeben und bricht den Datenstrom ab.",[11,65,66,67,70,71,74,75,78],{},"Entscheidend für die Reichweite ist die Versionsangabe im CVE-Eintrag: Betroffen sind die Brotli-Fassungen 1.0.3 bis 1.2.0 „on all platforms“, zu aktualisieren sind „any Brotli libraries or binaries“. Korrigiert sind ",[15,68,69],{},"1.0.10",", ",[15,72,73],{},"1.1.1"," und ",[15,76,77],{},"1.2.1",", alle am 21. Oktober erschienen. Node.js ist der bekannteste Abnehmer dieser Bibliothek, nicht der einzige.",[20,80,82],{"id":81},"der-decoder-ist-erreichbar-ohne-dass-brotli-im-code-steht","Der Decoder ist erreichbar, ohne dass Brotli im Code steht",[11,84,85,86,89,90,93],{},"Eine Anwendung muss Brotli nirgends aufrufen, um den Decoder zu erreichen. Drei Wege führen laut Imperva hinein: der direkte Aufruf über ",[15,87,88],{},"node:zlib",", Nodes eingebautes ",[15,91,92],{},"fetch()",", das eine Brotli-komprimierte Antwort selbstständig dekomprimiert, und die Request-Parser von Express 5.",[11,95,96,97,70,100,70,103,74,106,109,110,113,114,70,117,70,120,74,123,126,127,130,131,134,135,137,138,140],{},"Der dritte Weg vergrößert die Angriffsfläche am stärksten. Der Umstiegsleitfaden von Express 5 führt die Brotli-Dekomprimierung als Verbesserung ohne Migrationsschritt: ",[15,98,99],{},"express.json()",[15,101,102],{},"express.urlencoded()",[15,104,105],{},"express.text()",[15,107,108],{},"express.raw()"," nehmen ",[15,111,112],{},"Content-Encoding: br"," an. body-parser dokumentiert, alle Parser unterstützten „automatic inflation“ von ",[15,115,116],{},"gzip",[15,118,119],{},"br",[15,121,122],{},"deflate",[15,124,125],{},"zstd","; die einzige dafür dokumentierte Option ist ",[15,128,129],{},"inflate"," mit dem Standardwert ",[15,132,133],{},"true",". Einen Schalter nur für Brotli nennt die Dokumentation nicht. Wer ",[15,136,99],{}," einsetzt und ",[15,139,129],{}," nicht abschaltet, nimmt also Brotli-Körper an, ohne das im eigenen Code zu sehen. Ein nackter HTTP-Server in Node dekomprimiert eingehende Brotli-Körper dagegen nicht allein dadurch, dass er sie empfängt.",[11,142,143,144,147,148,151,152,156],{},"Imperva hat diesen Weg bis zur Codeausführung durchgespielt: Im offiziellen Node-Image ",[15,145,146],{},"24.22.0"," für Linux\u002Farm64 legte eine Brotli-Nachricht eine Datei an, für die die Testanwendung keinen Code enthielt – ohne Debugger, aber nicht bei jedem Versuch. ",[15,149,150],{},"24.22.1"," wies die Eingaben ab. Das ist bislang die einzige öffentliche Demonstration; Angriffe in der Praxis melden weder Node.js noch Imperva, und im ",[31,153,155],{"href":154},"\u002Fde\u002Fwissen\u002Fcisa-kev","CISA-KEV-Katalog"," steht die Lücke mit Stand 23. Oktober nicht.",[20,158,160],{"id":159},"warum-eine-gepatchte-node-version-nicht-genügt","Warum eine gepatchte Node-Version nicht genügt",[11,162,163,164,167,168,170,171,174,175,178,179,181],{},"Ob ",[15,165,166],{},"node -v"," eine korrigierte Fassung zeigt, entscheidet nur dort, wo Node seinen eigenen Brotli-Code benutzt. Debians Paket tut das nicht: Im Sicherheits-Tracker steht zu ",[15,169,17],{}," die Notiz, ",[15,172,173],{},"nodejs"," nutze die Brotli-Bibliothek des Systems. Entsprechend führt Debian beide Pakete – ",[15,176,177],{},"brotli"," in Bookworm, Trixie und Sid als „vulnerable“, als behobene Fassung steht „(unfixed)“, und ",[15,180,173],{}," mit der Dringlichkeit „unimportant“. Auf diesen Systemen schließt erst das Brotli-Paket die Lücke, und am 23. Oktober war es dort nicht verfügbar.",[183,184,185,201],"table",{},[186,187,188],"thead",{},[189,190,191,195,198],"tr",{},[192,193,194],"th",{},"Komponente",[192,196,197],{},"Fassung mit Fix",[192,199,200],{},"Hinweis",[202,203,204,218,230,243,254],"tbody",{},[189,205,206,210,215],{},[207,208,209],"td",{},"Node.js 26.x",[207,211,212],{},[15,213,214],{},"26.12.1",[207,216,217],{},"aktueller Zweig",[189,219,220,223,227],{},[207,221,222],{},"Node.js 24.x",[207,224,225],{},[15,226,150],{},[207,228,229],{},"aktuelles LTS",[189,231,232,235,240],{},[207,233,234],{},"Node.js 22.x",[207,236,237],{},[15,238,239],{},"22.23.4",[207,241,242],{},"LTS",[189,244,245,248,251],{},[207,246,247],{},"Node.js 20.x und älter",[207,249,250],{},"kein Fix",[207,252,253],{},"End of Life, laut Advisory immer betroffen",[189,255,256,259,267],{},[207,257,258],{},"Brotli-Bibliothek",[207,260,261,70,263,70,265],{},[15,262,69],{},[15,264,73],{},[15,266,77],{},[207,268,269],{},"maßgeblich, wo Node die System-Bibliothek nutzt",[20,271,273],{"id":272},"was-jetzt-zu-tun-ist","Was jetzt zu tun ist",[11,275,276],{},"Die Schritte unterscheiden sich von einem gewöhnlichen Update darin, dass die Node-Version allein nicht über die Lücke entscheidet:",[278,279,280,288,298,304,319,325],"ul",{},[281,282,283,287],"li",{},[284,285,286],"strong",{},"Laufzeitumgebungen aktualisieren"," und die Prozesse neu starten: Ein laufender Prozess behält den alten Decoder im Speicher.",[281,289,290,293,294,297],{},[284,291,292],{},"Die Brotli-Bibliothek mitprüfen",", wo Node aus einem Distributionspaket kommt: Dort ist ",[15,295,296],{},"libbrotli"," die verbindliche Angabe.",[281,299,300,303],{},[284,301,302],{},"Jedes Image einzeln prüfen",", nicht nur den Host. In Container-Images und Appliances mit eingebauter Laufzeitumgebung veralten Versionsangaben am schnellsten; eine Paketliste des Hosts zeigt sie nicht.",[281,305,306,309,310,313,314,74,316,318],{},[284,307,308],{},"Brotli-Verkehr aus unbekannter Quelle begrenzen",", solange das Update wartet. ",[15,311,312],{},"inflate: false"," weist auch ",[15,315,116],{},[15,317,122],{}," ab und bricht damit möglicherweise bestehende Clients; eine Begrenzung auf betroffenen Pfaden am Webserver oder in der Web Application Firewall trifft enger.",[281,320,321,324],{},[284,322,323],{},"Die übrigen neun Lücken nicht übersehen."," Das Release vom 21. Oktober behebt zehn CVEs, drei weitere davon mit der Stufe „high“: abgeschnittene DNS-Namen mit NUL-Zeichen und zwei Umgehungen der TLS-Hostnamen-Prüfung.",[281,326,327,330],{},[284,328,329],{},"Decoder-Fehler nicht als Beweis lesen."," Abgestürzte Prozesse und Fehler des Decoders sind laut Imperva allein kein verlässliches Zeichen für einen Angriff – aussagekräftig werden sie erst zusammen mit der eingesetzten Fassung und der Herkunft der Daten.",[20,332,334],{"id":333},"was-hilft-und-warum-sichtbarkeit-entscheidet","Was hilft – und warum Sichtbarkeit entscheidet",[11,336,337,338,342,343,347,348,352],{},"Die Frage am Tag eines solchen Updates ist nicht, wie man Node.js aktualisiert, sondern wo überall eine Laufzeitumgebung läuft. blacklens.io erfasst über ",[31,339,341],{"href":340},"\u002Fde\u002Fplatform\u002Fattack-surface-management","Attack Surface Management"," laufend von außen, welche Dienste und Webanwendungen erreichbar sind und welche Technologien in welchen Versionen darauf laufen; interne Systeme deckt der ",[31,344,346],{"href":345},"\u002Fde\u002Fplatform\u002Fsentry","Sentry Agent"," ab. Das ",[31,349,351],{"href":350},"\u002Fde\u002Fplatform\u002Femerging-threats","Threat Center"," gleicht neue CVEs in Echtzeit mit diesem Inventar ab und weist aus, ob ein Treffer auf der exakten Version beruht oder nur auf dem Produkt.",[11,354,355],{},"Eine Grenze gehört dazu: Welche Brotli-Bibliothek ein Node-Prozess geladen hat, verrät kein Dienst von außen. Diese Prüfung bleibt auf dem System – welche Systeme sie betrifft, lässt sich vorher beantworten.",{"title":357,"searchDepth":358,"depth":358,"links":359},"",3,[360,362,363,364,365,366],{"id":22,"depth":361,"text":23},2,{"id":51,"depth":361,"text":52},{"id":81,"depth":361,"text":82},{"id":159,"depth":361,"text":160},{"id":272,"depth":361,"text":273},{"id":333,"depth":361,"text":334},"threat","2026-10-23","Node2Shell nutzt eine Lücke im Brotli-Decoder, den Node.js mitliefert. Der Fix steckt in Node 22.23.4, 24.22.1 und 26.12.1 – und in Brotli selbst.",false,"md",[373,376,379],{"q":374,"a":375},"Was ist Node2Shell?","Node2Shell ist der Name, unter dem das Sicherheitsunternehmen Imperva seine Analyse von CVE-2026-111497 veröffentlicht hat: einem Out-of-Bounds-Write im Brotli-Decoder, den Node.js mitliefert. Wer manipulierte Brotli-Daten an eine Anwendung schicken kann, die sie dekomprimiert, kann damit Speicher überschreiben und im Ergebnis eigenen Code ausführen. Node.js hat die Lücke am 21. Oktober 2026 behoben, der CVE-Eintrag bewertet sie mit CVSS 9.2 nach Version 4.0.",{"q":377,"a":378},"Welche Versionen schließen CVE-2026-111497?","Node.js liefert den Fix in 22.23.4, 24.22.1 und 26.12.1; die Zweige 20.x und älter sind End of Life und bekommen ihn nicht. Der fehlerhafte Code stammt aber aus der Brotli-Bibliothek, korrigiert in 1.0.10, 1.1.1 und 1.2.1. Wo Node die Brotli-Bibliothek des Systems nutzt, wie im Debian-Paket, entscheidet deren Fassung über die Lücke – nicht die Ausgabe von node -v.",{"q":380,"a":381},"Ist meine Anwendung betroffen, wenn sie Brotli nicht verwendet?","Möglicherweise ja. Der Decoder wird auch erreicht, ohne dass Brotli im eigenen Quellcode vorkommt: Nodes eingebautes fetch() dekomprimiert Brotli-Antworten selbst, und die Request-Parser von Express 5 und body-parser 2 nehmen Brotli-Körper an, solange die Option inflate auf ihrem Standardwert true steht. Ein nackter HTTP-Server in Node dekomprimiert eingehende Brotli-Körper laut Imperva nicht allein dadurch, dass er sie empfängt.","\u002Fimages\u002Finsights\u002Fnode2shell-warum-node-patchen-nicht-reicht.webp","Farbig leuchtende Quellcodezeilen auf einem dunklen Bildschirm, schräg fotografiert","de",null,{},true,"\u002Fde\u002Finsights\u002Fnode2shell-warum-node-patchen-nicht-reicht",5,{"title":5,"description":369},{"loc":388},"de\u002Finsights\u002Fnode2shell-warum-node-patchen-nicht-reicht",[394],"Bedrohungslage","node2shell-warum-node-patchen-nicht-reicht","TOm-lClXMqFlTb6gqj4v3AbjwIZv9D0keWrOmU22OIg",[398,665,895],{"id":399,"title":400,"author":6,"body":401,"category":367,"date":643,"description":644,"draft":370,"extension":371,"faq":645,"image":655,"imageAlt":656,"lang":384,"legacyUrl":385,"meta":657,"navigation":387,"path":658,"readingTime":389,"seo":659,"sitemap":660,"stem":661,"tags":662,"translation":663,"updated":385,"__hash__":664},"insightsDe\u002Fde\u002Finsights\u002Ffortinet-hardening-release-patchen-ohne-advisory.md","Fortinet Hardening Release: Patchen ohne Advisory",{"type":8,"value":402,"toc":634},[403,406,410,420,495,514,518,521,534,538,544,547,551,554,562,564,567,593,596,600,614,616,628],[11,404,405],{},"Fortinet liefert am 22. Oktober 2026 Sicherheitsupdates für FortiOS, FortiManager und FortiAnalyzer aus, einen Tag nach FortiMail und FortiAuthenticator. Als kritisch und hoch eingestuft – aber ohne CVE-Nummer, ohne CVSS-Wert und ohne Angriffsbeschreibung. Die Advisories folgen erst am 10. November. Wer diese Woche patcht, schließt Lücken, die er nicht benennen kann.",[20,407,409],{"id":408},"was-fortinet-am-22-oktober-ausliefert","Was Fortinet am 22. Oktober ausliefert",[11,411,412,413,419],{},"Das Security Hardening Release ist ein gebündelter Satz Sicherheitsupdates für fünf Produktlinien, angekündigt am 21. Oktober 2026 von Fortinet-CISO Carl Windsor in ",[31,414,418],{"href":415,"rel":416},"https:\u002F\u002Fwww.fortinet.com\u002Fblog\u002Fciso-collective\u002Ffortinet-releases-security-hardening-release-for-multiple-products",[417],"nofollow","Fortinets CISO-Blog",". FortiMail und FortiAuthenticator sind seit dem 21. Oktober verfügbar. Zum Inhalt steht dort ein Satz: „These releases include critical and high-severity fixes.“",[183,421,422,435],{},[186,423,424],{},[189,425,426,429,432],{},[192,427,428],{},"Branch",[192,430,431],{},"FortiOS",[192,433,434],{},"FortiManager und FortiAnalyzer",[202,436,437,451,465,480],{},[189,438,439,442,447],{},[207,440,441],{},"8.0",[207,443,444],{},[15,445,446],{},"8.0.2",[207,448,449],{},[15,450,446],{},[189,452,453,456,461],{},[207,454,455],{},"7.6",[207,457,458],{},[15,459,460],{},"7.6.8",[207,462,463],{},[15,464,460],{},[189,466,467,470,475],{},[207,468,469],{},"7.4",[207,471,472],{},[15,473,474],{},"7.4.13",[207,476,477],{},[15,478,479],{},"7.4.12",[189,481,482,485,490],{},[207,483,484],{},"7.2",[207,486,487],{},[15,488,489],{},"7.2.14",[207,491,492],{},[15,493,494],{},"7.2.13",[11,496,497,498,70,500,74,503,506,507,74,510,513],{},"Betroffen ist jeweils alles darunter. Für FortiMail gelten ",[15,499,446],{},[15,501,502],{},"7.6.7",[15,504,505],{},"7.4.9",", für FortiAuthenticator ",[15,508,509],{},"8.0.4",[15,511,512],{},"6.6.11","; FortiMail 7.2 bekommt keinen Fix, sondern den Wechsel auf die 7.4er-Reihe. FortiSASE aktualisiert Fortinet selbst, FortiManager Cloud kann einen manuellen Schritt erfordern.",[20,515,517],{"id":516},"warum-es-keine-cve-nummern-gibt","Warum es keine CVE-Nummern gibt",[11,519,520],{},"Die Advisories erscheinen laut Fortinet erst am nächsten Patch Tuesday, dem 10. November, auf der Advisory-Seite des Fortinet Product Security Incident Response Team – als Teil einer „ongoing commitment to responsible transparency while balancing customer security“. Knapp drei Wochen Vorsprung für Betreiber, so ist es gedacht.",[11,522,523,524,529,530,533],{},"Die Herkunft der Lücken erklärt die Bündelung. Sie stammen nicht von externen Meldern, sondern aus Fortinets eigenem KI-gestützten Testprogramm; Fortinet dankt Anthropic, OpenAI, Google und SpaceX für die Zusammenarbeit. Wie das abläuft, hat Windsor ",[31,525,528],{"href":526,"rel":527},"https:\u002F\u002Fwww.fortinet.com\u002Fblog\u002Fciso-collective\u002Fupdate-on-fortinet-use-of-frontier-ai",[417],"im Juni 2026 beschrieben",": Mehrere Frontier-Modelle gleichen den Quellcode mit einem zuvor erstellten Bedrohungsmodell der Firmware ab; was übrig bleibt, validiert ein Penetrationstest. Bei über 100 Tests in 30 Produktfamilien waren 40 Prozent der Befunde echte Treffer und 30 Prozent Fehlalarme. Was im April mit ",[31,531,532],{"href":46},"Claude Mythos"," als Ausblick begann, kommt jetzt als Firmware-Update.",[20,535,537],{"id":536},"ein-patch-ohne-cve-nummer-ist-für-scanner-und-richtlinien-unsichtbar","Ein Patch ohne CVE-Nummer ist für Scanner und Richtlinien unsichtbar",[11,539,540,541,543],{},"Schwachstellen-Scanner, Patch-Richtlinien und Ticketsysteme arbeiten mit CVE-Nummern. Fehlt die Nummer, fehlt alles, was daran hängt: kein NVD-Eintrag, kein EPSS-Wert, kein Eintrag im ",[31,542,155],{"href":154},", kein CVSS-Wert, ab dem eine Patch-Richtlinie greift. Ein Change-Antrag, der seine Begründung sonst aus CVE-Nummer und Schweregrad bezieht, stützt sich in diesen 19 Tagen allein auf die Ankündigung des Herstellers.",[11,545,546],{},"Damit verschiebt sich die Frage: nicht mehr, welche CVE uns betrifft, sondern welche Version auf welchem erreichbaren Gerät läuft – und ob sie älter ist als die gepatchte. Auch die Risikoabwägung verliert ihre Grundlage, denn über Angriffsvoraussetzungen und Ausnutzbarkeit lässt sich vor dem 10. November nichts sagen. Bleibt die Erreichbarkeit von außen: Ein FortiManager, der im Internet steht, ist das Problem – mit oder ohne CVE-Nummer.",[20,548,550],{"id":549},"patch-diffing-die-uhr-läuft-ab-dem-release","Patch Diffing: die Uhr läuft ab dem Release",[11,552,553],{},"Der Vorsprung, den die zurückgehaltenen Advisories schaffen sollen, gilt nur für den, der liest – nicht für den, der vergleicht. Fortinet benennt das Risiko selbst: Mit der Veröffentlichung zeigt der Patch, wo im Code sich etwas geändert hat. Besonders gut taugen die Modelle laut dem Juni-Beitrag für genau das – „analyzing firmware, assessing changes between versions, and developing proof-of-concept exploits“. Fortinet rechnet mit Exploits in Stunden bis Tagen statt Wochen; der FortiGuard-Bericht 2026 beziffert die Zeit bis zur Ausnutzung bei kritischen Ausbrüchen mit 24 bis 48 Stunden, nach 4,76 Tagen im Schnitt 2024.",[11,555,556,557,561],{},"Dass Fortinet-Geräte ein bevorzugtes Ziel sind, ist belegt: Im CISA-KEV-Katalog stehen mit Stand 21. Oktober 2026 32 Einträge zu Fortinet-Produkten, zwei aus diesem Monat; wie konsequent Angreifer exponierte Management-Oberflächen abarbeiten, zeigte ",[31,558,560],{"href":559},"\u002Fde\u002Finsights\u002Ffortibleed-wenn-zehntausende-firewalls-zur-offenen-tur-werden","FortiBleed",". Für die Lücken aus diesem Release ist bislang keine Ausnutzung bekannt; Fortinet nennt die Fixes ausdrücklich vorbeugend.",[20,563,273],{"id":272},[11,565,566],{},"Fortinet empfiehlt, das Release als vorrangige Änderung zu behandeln, nicht als Routinewartung, und nennt vier Schritte:",[278,568,569,575,581,587],{},[281,570,571,574],{},[284,572,573],{},"Inventar:"," jede FortiManager-Installation und jede FortiOS-Instanz erfassen, die aus dem Internet erreichbaren zuerst.",[281,576,577,580],{},[284,578,579],{},"Wartungsfenster:"," für exponierte Systeme auf den 22. und 23. Oktober legen.",[281,582,583,586],{},[284,584,585],{},"Konfiguration sichern:"," vor dem Upgrade, nicht danach.",[281,588,589,592],{},[284,590,591],{},"Logs prüfen:"," auf ungewöhnliche administrative Zugriffe und nicht genehmigte Konfigurationsänderungen, vor und nach dem Patchen.",[11,594,595],{},"Wo sich nicht sofort aktualisieren lässt, empfiehlt Fortinet, die Management-Zugänge über HTTPS und SSH auf vertrauenswürdige Adressen zu begrenzen, FortiManager vom Internet zu trennen und MFA für alle Administratorkonten zu erzwingen. Fortinet dazu: „These steps reduce risk but do not replace the need for a timely upgrade.“",[20,597,599],{"id":598},"nicht-zu-verwechseln-php2shell-läuft-parallel","Nicht zu verwechseln: PHP2Shell läuft parallel",[11,601,602,603,606,607,610,611,613],{},"Die beiden PHP-Lücken vom 21. Oktober gehören nicht zu diesem Release. Fortinet führt sie getrennt im Advisory ",[15,604,605],{},"FG-IR-26-186"," und stuft ",[15,608,609],{},"CVE-2026-109618"," dort als kritisch mit CVSS 9.8 ein. Laut einer Auswertung von Help Net Security vom 22. Oktober listet Fortinet zwölf Produkte als nicht betroffen, darunter FortiOS, FortiManager, FortiAnalyzer, FortiMail und FortiWeb, und zwölf weitere als in Prüfung. Palo Alto Networks meldet PAN-OS und Panorama in allen Versionen als betroffen, noch ohne Fix. Mechanismus und Sofortmaßnahmen stehen in unserem Beitrag zu ",[31,612,42],{"href":41},". Für Fortinet-Betreiber sind das diese Woche zwei getrennte Aufgaben.",[20,615,334],{"id":333},[11,617,618,619,621,622,624,625,627],{},"Solange die CVE-Nummern fehlen, ist das Versionsinventar die einzige belastbare Grundlage. blacklens.io erfasst über ",[31,620,341],{"href":340}," laufend von außen, welche Dienste erreichbar sind und welche Technologien in welcher Version darauf laufen; das Technologie-Inventar ist nach Hersteller und Produkt filterbar, interne Installationen deckt der ",[31,623,346],{"href":345}," ab. Das beantwortet die Frage, die diese Woche zählt: Wo läuft eine Version älter als ",[15,626,460],{},", und ist sie aus dem Internet erreichbar?",[11,629,630,631,633],{},"Das ",[31,632,351],{"href":350}," gleicht neue CVEs in Echtzeit mit diesem Inventar ab und weist aus, ob ein Treffer auf der exakten Version beruht oder nur auf dem Produkt – für dieses Release beginnt das am 10. November, vorher gibt es keine Nummern zum Abgleichen. Diese Woche ist das Release eine Inventarfrage. Die Schwachstellenfrage kommt im November.",{"title":357,"searchDepth":358,"depth":358,"links":635},[636,637,638,639,640,641,642],{"id":408,"depth":361,"text":409},{"id":516,"depth":361,"text":517},{"id":536,"depth":361,"text":537},{"id":549,"depth":361,"text":550},{"id":272,"depth":361,"text":273},{"id":598,"depth":361,"text":599},{"id":333,"depth":361,"text":334},"2026-10-22","Fortinet liefert am 22. Oktober 2026 kritische Fixes für FortiOS, FortiManager und FortiAnalyzer aus. Die Advisories mit CVE-Nummern folgen am 10. November.",[646,649,652],{"q":647,"a":648},"Was ist Fortinets Security Hardening Release vom Oktober 2026?","Das Security Hardening Release ist ein gebündelter Satz Sicherheitsupdates, den Fortinet am 21. und 22. Oktober 2026 für FortiMail, FortiAuthenticator, FortiOS, FortiManager und FortiAnalyzer ausgeliefert hat. Fortinet stuft die behobenen Lücken als kritisch und hoch ein, nennt aber vorerst keine CVE-Nummern, keine CVSS-Werte und keine Angriffsvoraussetzungen. Die Advisories erscheinen laut Ankündigung am 10. November 2026. Gefunden wurden die Lücken im KI-gestützten Testprogramm von Fortinet.",{"q":650,"a":651},"Welche Fortinet-Versionen beheben die Schwachstellen?","Behoben sind die Lücken laut Fortinets Ankündigung in FortiOS 8.0.2, 7.6.8, 7.4.13 und 7.2.14 sowie in FortiManager und FortiAnalyzer 8.0.2, 7.6.8, 7.4.12 und 7.2.13. Für FortiMail gelten 8.0.2, 7.6.7 und 7.4.9, für FortiAuthenticator 8.0.4 und 6.6.11. FortiMail 7.2 erhält keinen Fix, sondern den Wechsel auf die 7.4er-Reihe. FortiSASE aktualisiert Fortinet selbst, FortiManager Cloud kann einen manuellen Schritt erfordern.",{"q":653,"a":654},"Warum ist ein Patch ohne CVE-Nummer für Schwachstellen-Scanner ein Problem?","Ein Patch ohne CVE-Nummer bleibt für alles unsichtbar, was Schwachstellen über CVE-Nummern steuert: Schwachstellen-Scanner, Patch-Richtlinien, Ticketsysteme. Ohne die Nummer gibt es keinen NVD-Eintrag, keinen EPSS-Wert, keinen CISA-KEV-Status und keinen CVSS-Wert, ab dem eine Patch-Richtlinie greift. Bis die Advisories erscheinen, bleibt nur der Versionsvergleich: Welche Fortinet-Version läuft auf welchem erreichbaren System? Diese Frage beantwortet ein laufend aktualisiertes Technologie-Inventar.","\u002Fimages\u002Finsights\u002Ffortinet-hardening-release-patchen-ohne-advisory.webp","Tablet mit geöffneter Fortinet-Website vor einem unscharfen Monitor mit Quellcode",{},"\u002Fde\u002Finsights\u002Ffortinet-hardening-release-patchen-ohne-advisory",{"title":400,"description":644},{"loc":658},"de\u002Finsights\u002Ffortinet-hardening-release-patchen-ohne-advisory",[394],"fortinet-hardening-release-patchen-ohne-advisory","OoV7Gykawmn_xKeReTXorGcXs_Srwuvo3ki4PbubDqo",{"id":666,"title":667,"author":6,"body":668,"category":367,"date":643,"description":874,"draft":370,"extension":371,"faq":875,"image":885,"imageAlt":886,"lang":384,"legacyUrl":385,"meta":887,"navigation":387,"path":888,"readingTime":389,"seo":889,"sitemap":890,"stem":891,"tags":892,"translation":893,"updated":385,"__hash__":894},"insightsDe\u002Fde\u002Finsights\u002Fphp2shell-angriffe-vor-dem-patch.md","PHP2Shell: Die Angriffe begannen vier Tage vor dem Patch",{"type":8,"value":669,"toc":867},[670,673,677,686,693,697,706,768,771,775,778,784,788,791,839,848,851,853,856],[11,671,672],{},"Vier Tage bevor PHP die beiden Lücken öffentlich machte, lief der erste Angriffsversuch. Amazon Threat Intelligence fand ihn in der Telemetrie seines Honeypot-Netzwerks MadPot, datiert auf den 17. Oktober 2026. Wer PHP2Shell abschließt, sobald die Versionsnummer stimmt, prüft damit vier Tage zu wenig.",[20,674,676],{"id":675},"was-amazon-vor-der-offenlegung-gesehen-hat","Was Amazon vor der Offenlegung gesehen hat",[11,678,679,680,685],{},"Amazon Threat Intelligence hat am 21. Oktober 2026 veröffentlicht, dass der früheste Ausnutzungsversuch von PHP2Shell in seiner ",[31,681,684],{"href":682,"rel":683},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fsecurity\u002Famazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot\u002F",[417],"MadPot-Telemetrie"," auf den 17. Oktober 2026 datiert – vier Tage vor der Offenlegung, drei Tage vor dem Leak. Die Anfrage kam aus einem kommerziellen Anonymisierungsnetz und traf einen Honeypot, für Amazon ein Hinweis auf einen Angreifer und nicht auf Forschung. Wie der Akteur vorab an Exploit-Informationen kam, ist offen.",[11,687,688,689,692],{},"Ab 02:00 UTC am 21. Oktober, zwölf Stunden vor dem Release um 14:00 UTC, sah MadPot mehrere Proof-of-Concept-Exploits von weiterer anonymisierter Infrastruktur. Payloads und Herkunft unterschieden sich, was auf mehrere unabhängige Akteure deutet; ob einer gegen echte Systeme funktioniert hätte, lässt Amazon offen. CJ Moses, CISO von Amazon Integrated Security, fasst den Stand nach dem Release in einem Satz zusammen: „PHP2Shell is now being broadly exploited in the wild.“ Mechanismus, Patch-Stände und Sofortmaßnahmen stehen im ",[31,690,691],{"href":41},"Beitrag von gestern",".",[20,694,696],{"id":695},"wie-die-exploits-vor-den-patch-kamen","Wie die Exploits vor den Patch kamen",[11,698,699,700,705],{},"Der 17. Oktober bleibt unerklärt, die zwölf Stunden vor dem Release nicht. Die PHP Foundation hat diese Kette in ihrem ",[31,701,704],{"href":702,"rel":703},"https:\u002F\u002Fthephp.foundation\u002Fblog\u002F2026\u002F10\u002F21\u002Ftodays-php-security-release-and-how-were-strengthening-php-security\u002F",[417],"Postmortem vom 21. Oktober"," offengelegt:",[183,707,708,718],{},[186,709,710],{},[189,711,712,715],{},[192,713,714],{},"Zeitpunkt (UTC)",[192,716,717],{},"Ereignis",[202,719,720,728,736,744,752,760],{},[189,721,722,725],{},[207,723,724],{},"17. Okt.",[207,726,727],{},"Erster Angriffsversuch in Amazons Honeypot-Telemetrie, Quelle unbekannt",[189,729,730,733],{},[207,731,732],{},"20. Okt., 15:00",[207,734,735],{},"CVE-Nummern kursieren in Foren, mit falscher Release-Zeit und falschem CVSS 10.0",[189,737,738,741],{},[207,739,740],{},"20. Okt., 20:00",[207,742,743],{},"Calif veröffentlicht versehentlich ein Video des eigenen Exploits",[189,745,746,749],{},[207,747,748],{},"20. Okt., 23:00",[207,750,751],{},"Mitigationshinweise an Betreiber kritischer Infrastruktur könnten abgeflossen sein",[189,753,754,757],{},[207,755,756],{},"21. Okt., 07:41",[207,758,759],{},"Chainguard veröffentlicht Container-Images mit dem Fix, sechs Stunden zu früh",[189,761,762,765],{},[207,763,764],{},"21. Okt., 14:00",[207,766,767],{},"Koordinierte Veröffentlichung von Advisories und Releases",[11,769,770],{},"An Chainguards Alleingang stört die Foundation nicht die frühe Verfügbarkeit des Fixes, sondern seine Vergleichbarkeit: „Any attacker could now study the fix in binary form while every other PHP user was still waiting for the release.“ Chainguards CEO Dan Lorenc bestreitet den Zeitpunkt nicht, wohl aber die Bewertung: „I made the call to get these out early when exploits hit in the wild.“ Das Sicherheitsteam der Foundation selbst hatte zum Release keinen funktionsfähigen öffentlichen Exploit identifiziert und nennt die Verzögerung seit dem ersten Hinweis von 2024 „a structural failure“.",[20,772,774],{"id":773},"stand-22-oktober-millionen-versuche-keine-bestätigte-übernahme","Stand 22. Oktober: Millionen Versuche, keine bestätigte Übernahme",[11,776,777],{},"Bestätigt ist bis heute kein erfolgreicher Einbruch über PHP2Shell – bestätigt ist die Zahl der Versuche. Cloudflare-Chef Matthew Prince nennt für das eigene Netz Tausende Versuche in den zehn Stunden vor der Ankündigung, Zehntausende in den 45 Minuten danach, Hunderttausende binnen zwei Stunden und inzwischen Millionen. Cloudflare beobachtet außerdem, dass Angreifer ihre Payloads variieren und dabei auswerten, welche Anfragen die Web Application Firewall blockt.",[11,779,780,781,783],{},"Gegen die Masse steht die Qualität. Jake Knott von watchTowr sagt, keiner der kursierenden Proof-of-Concepts erreiche Code-Ausführung: Sie scheitern, messen Zeitunterschiede oder bringen den Zielprozess zum Absturz. VulnCheck sah mindestens eine Adresse, die erfolglos versuchte, eine Webshell abzulegen. Das BSI schreibt in Version 1.1 seiner Warnung vom 21. Oktober: „Zum aktuellen Zeitpunkt sind noch keine bestätigten Ausnutzungen der Schwachstellen bekannt.“ Im ",[31,782,155],{"href":154}," stehen beide Nummern am 22. Oktober weiterhin nicht. JFrog fand in öffentlichen Repositories außerdem gefälschte Exploits und Scherz-Malware – wer solchen Code gegen eigene Systeme testet, prüft womöglich etwas anderes als die Lücke.",[20,785,787],{"id":786},"was-das-für-ihre-untersuchung-bedeutet","Was das für Ihre Untersuchung bedeutet",[11,789,790],{},"Amazon empfiehlt, den Untersuchungszeitraum am 17. Oktober zu beginnen, nicht am Patch-Tag. Praktisch heißt das zuerst, Beweise zu sichern, bevor die Rotation sie löscht: Webserver-Logs sowie Prozess- und Dateizustände aller erreichbaren PHP-Systeme ab dem 16. Oktober.",[278,792,793,807,827,833],{},[281,794,795,798,799,802,803,806],{},[284,796,797],{},"Anfragen:"," POST-Anfragen, die in ",[15,800,801],{},"multipart\u002Fform-data","-Körpern die Zeichenfolge ",[15,804,805],{},"PHP_SESSION_UPLOAD_PROGRESS"," tragen; dazu Häufungen von HTTP 500 und abgestürzte PHP-Worker.",[281,808,809,812,813,70,816,70,819,822,823,826],{},[284,810,811],{},"Prozesse:"," jede Shell, jeder Interpreter und jedes Download-Werkzeug, das ",[15,814,815],{},"php-fpm",[15,817,818],{},"php-cgi",[15,820,821],{},"httpd"," oder ",[15,824,825],{},"apache2"," gestartet hat, dazu neue Dateien im Webroot.",[281,828,829,832],{},[284,830,831],{},"Erkennung ohne Signatur:"," Amazon empfiehlt Detektionen, die nicht an CVE-spezifischen Signaturen hängen – die erste Ausnutzung liegt regelmäßig vor der ersten Signatur.",[281,834,835,838],{},[284,836,837],{},"Indikatoren:"," Amazon veröffentlicht sechs Adressen aus seiner Telemetrie. Sie gehören zu gemeinsam genutzter Anonymisierungsinfrastruktur und sind nicht exklusiv für diese Aktivität – als Suchanlass taugen sie, als Blockliste nicht.",[840,841,846],"pre",{"className":842,"code":844,"language":845},[843],"language-text","103.216.220.92     17.10.2026\n31.223.184.166     21.10.2026\n37.19.200.5        21.10.2026\n134.209.159.64     21.10.2026\n103.114.163.188    21.10.2026\n95.217.98.37       21.10.2026\n","text",[15,847,844],{"__ignoreMap":357},[11,849,850],{},"Für die Frist, die solche Fälle setzen, ist Amazons nüchternster Satz der wichtigste: „A 7-day or 30-day SLA assumes a delay that no longer exists.“ Der Grund ist strukturell und nicht auf PHP beschränkt: KI-gestützte Analyse macht es billiger, aus einem Patch-Diff oder einem Advisory einen funktionierenden Exploit zu bauen.",[20,852,334],{"id":333},[11,854,855],{},"Eine Frist in Stunden setzt voraus, dass das Inventar vorliegt, wenn das Advisory erscheint – zwischen dem 17. und dem 21. Oktober war genau das die einzige nutzbare Information.",[11,857,858,859,861,862,347,864,866],{},"blacklens.io erfasst über ",[31,860,341],{"href":340}," laufend, welche Dienste und Webanwendungen von außen erreichbar sind und welche Technologien darauf laufen; interne Systeme deckt der ",[31,863,346],{"href":345},[31,865,351],{"href":350}," gleicht neue CVEs mit diesem Inventar ab und zeigt je Treffer EPSS-Wert, KEV-Eintrag, verfügbare Exploits und ob die Zuordnung auf der exakten Version oder nur auf dem Produkt beruht. Die Spurensuche auf dem Host selbst deckt das nicht ab; dafür bleiben Logs und Überwachung auf dem System zuständig.",{"title":357,"searchDepth":358,"depth":358,"links":868},[869,870,871,872,873],{"id":675,"depth":361,"text":676},{"id":695,"depth":361,"text":696},{"id":773,"depth":361,"text":774},{"id":786,"depth":361,"text":787},{"id":333,"depth":361,"text":334},"Amazon fand den ersten PHP2Shell-Angriffsversuch am 17. Oktober 2026, vier Tage vor der Offenlegung. Das verschiebt den Zeitraum jeder Prüfung.",[876,879,882],{"q":877,"a":878},"Wurde PHP2Shell schon vor der Offenlegung ausgenutzt?","Ja, nach Angaben von Amazon Threat Intelligence. Der früheste Ausnutzungsversuch in der Telemetrie des Honeypot-Netzwerks MadPot datiert auf den 17. Oktober 2026, vier Tage vor PHPs Advisory, und kam aus einem kommerziellen Anonymisierungsnetz. Wie der Akteur vorab an Exploit-Informationen kam, ist offen. Weitere Proof-of-Concept-Versuche folgten ab 02:00 UTC am 21. Oktober, zwölf Stunden vor dem Release.",{"q":880,"a":881},"Ab welchem Datum sollte ich nach einer Kompromittierung suchen?","Amazon empfiehlt, Untersuchungen zu PHP2Shell mindestens bis zum 17. Oktober 2026 zurückzuführen statt nur bis zum Patch-Tag. Praktisch heißt das, Webserver-Logs sowie Prozess- und Dateizustände der erreichbaren PHP-Systeme ab dem 16. Oktober zu sichern, bevor die Rotation sie löscht. Gesucht wird nach POST-Anfragen mit der Zeichenfolge PHP_SESSION_UPLOAD_PROGRESS, nach Prozessen, die ein PHP-Worker gestartet hat, und nach neuen Dateien im Webroot.",{"q":883,"a":884},"Wie schnell muss ein kritisches Update eingespielt sein?","Amazon empfiehlt für kritische Schwachstellen in internet-erreichbaren Systemen Patch- und Mitigationsfristen in Stunden: Eine Frist von 7 oder 30 Tagen unterstelle eine Verzögerung, die es nicht mehr gebe. Das setzt voraus, dass das Inventar am Tag des Advisories vorliegt. blacklens.io gleicht neue CVEs im Threat Center laufend mit den erfassten Technologien ab und zeigt je Treffer CVSS, EPSS, KEV-Eintrag und ob ein Exploit öffentlich ist.","\u002Fimages\u002Finsights\u002Fphp2shell-angriffe-vor-dem-patch.webp","Zeitachse mit dem ersten Angriffsversuch am 17. Oktober und dem PHP-Patch am 21. Oktober 2026",{},"\u002Fde\u002Finsights\u002Fphp2shell-angriffe-vor-dem-patch",{"title":667,"description":874},{"loc":888},"de\u002Finsights\u002Fphp2shell-angriffe-vor-dem-patch",[394],"php2shell-angriffe-vor-dem-patch","sjAgmb1bKVf424gYdXj2DQbzJoOKk7-xPN4BrmFJ6jM",{"id":896,"title":897,"author":6,"body":898,"category":367,"date":1458,"description":1459,"draft":370,"extension":371,"faq":1460,"image":1472,"imageAlt":1473,"lang":384,"legacyUrl":385,"meta":1474,"navigation":387,"path":41,"readingTime":1310,"seo":1475,"sitemap":1476,"stem":1477,"tags":1478,"translation":1479,"updated":643,"__hash__":1480},"insightsDe\u002Fde\u002Finsights\u002Fphp2shell-kritische-rce-lucken-in-php.md","PHP2Shell: Patches sind da, die Ursache war eine andere",{"type":8,"value":899,"toc":1448},[900,903,909,913,940,943,947,956,966,970,979,982,1037,1051,1055,1058,1119,1122,1126,1135,1224,1239,1242,1246,1260,1331,1334,1367,1370,1374,1380,1393,1402,1424,1426,1429,1444],[11,901,902],{},"PHP hat am 21. Oktober 2026 außerplanmäßige Sicherheitsupdates für zwei kritische Lücken veröffentlicht, die unter dem Namen PHP2Shell kursieren: die Fassungen 8.2.35, 8.3.36, 8.4.27 und 8.5.12. Beide Lücken erlauben Remote Code Execution ohne Anmeldung, beide liegen im PHP-Core und nicht in einer Anwendung. Und beide haben eine andere Ursache als die, die seit dem Leak vom 20. Oktober durch Foren und Newsletter lief.",[11,904,905],{},[906,907,908],"em",{},"Aktualisiert am 21. Oktober 2026, nach dem Release: Dieser Beitrag beschrieb vorher einen noch nicht veröffentlichten Patch und folgte der damaligen Lesart, Session Upload Progress sei die Ursache. PHPs Advisory widerlegt das. Mechanismus, Sofortmaßnahmen und Versionsangaben stehen jetzt auf den offiziellen Advisories.",[20,910,912],{"id":911},"was-ist-php2shell","Was ist PHP2Shell?",[11,914,915,916,74,922,929,930,932,933,74,936,939],{},"PHP2Shell ist der inoffizielle Name für zwei kritische Schwachstellen im PHP-Core, geführt als ",[31,917,920],{"href":918,"rel":919},"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-w8hw-w9fx-j79w",[417],[15,921,609],{},[31,923,926],{"href":924,"rel":925},"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-6wmf-4rv5-p3rp",[417],[15,927,928],{},"CVE-2026-109619",". Beide erlauben unauthentifizierte Remote Code Execution, also das Ausführen eigener Befehle auf dem Server mit den Rechten des Webserver-Prozesses. PHP bewertet beide mit ",[31,931,34],{"href":33}," 9.2 nach Version 4.0. Dass es nicht 10.0 geworden ist, steht im Vektor: ",[15,934,935],{},"AC:H",[15,937,938],{},"AT:P"," weisen hohe Angriffskomplexität und zusätzliche Voraussetzungen aus. Der Exploit gelingt nicht bei jedem Versuch – Angreifer dürfen aber beliebig oft probieren.",[11,941,942],{},"Betroffen ist laut den Advisories jede Installation, die Web-Requests verarbeitet, unabhängig von der Anwendung darüber: PHP-FPM, Apache mit mod_php, php-cgi, LiteSpeed und FrankenPHP. Das höchste Risiko trägt mod_php. Nach Angaben von W3Techs nutzen 69 Prozent aller Websites mit bekannter Serversprache PHP, etwa unter WordPress, TYPO3, Magento oder Shopware. Gemeldet wurden die Lücken laut den Danksagungen in den Advisories vom Forscher lcfr-hax sowie von Forschern bei Wiz, Areion und OpenAI; den Fix entwickelten vier Mitglieder des PHP-Teams.",[20,944,946],{"id":945},"lücke-1-wenn-php-der-speicher-ausgeht","Lücke 1: Wenn PHP der Speicher ausgeht",[11,948,949,951,952,955],{},[15,950,609],{}," nutzt die Art, wie PHP einen Request bei Speichererschöpfung verlässt. PHP springt dafür über ",[15,953,954],{},"longjmp()"," heraus. In bestimmten Momenten ist der Speicher eines Requests schon erreichbar, aber noch nicht vollständig initialisiert. Schlägt eine Speicheranforderung genau dann fehl, berücksichtigt PHP diesen frühen Ausstieg nicht, und der Speicher bleibt in einem ungültigen Zustand liegen. Beim Aufräumen des Requests liest PHP diesen Zustand dann aus und verzweigt darüber.",[11,957,958,959,961,962,965],{},"Die Speichererschöpfung löst der Angreifer selbst aus, und zwar beim Zerlegen von ",[15,960,801],{},": über unbegrenzt viele Header, leere Datei-Felder oder verschachtelte Feldnamen. Es braucht dafür kein Formular in der Anwendung und keinen Login. Der Patch ersetzt den harten Sprung: PHP beendet den Request bei Speichermangel verzögert am nächsten sicheren Punkt der virtuellen Maschine und bricht erst oberhalb einer höheren Schwelle per ",[15,963,964],{},"_exit()"," ab.",[20,967,969],{"id":968},"lücke-2-wenn-reste-aus-dem-vorgänger-request-liegen-bleiben","Lücke 2: Wenn Reste aus dem Vorgänger-Request liegen bleiben",[11,971,972,974,975,978],{},[15,973,928],{}," betrifft Zustand, der länger lebt als der Request, zu dem er gehört. Ein PHP-Worker bearbeitet viele Requests nacheinander und hält dabei globalen Zustand für Fehlerbehandlung, Sessions, Objekte und Erweiterungen. Dieser Zustand zeigt teils auf Speicher, der dem Request gehört, und muss zurückgesetzt werden, bevor der Request seinen Speicher freigibt. Einige Operationen laufen aber ",[906,976,977],{},"vor"," der regulären Initialisierung des nächsten Requests und lesen die alten Verweise – eine Use-after-free.",[11,980,981],{},"Das Advisory trennt dabei Auslöser und Verbraucher, und diese Trennung ist der Grund, warum eine einzelne Einstellung nicht genügt:",[278,983,984,994,1000,1010],{},[281,985,986,989,990,993],{},[284,987,988],{},"Auslöser:"," schwere Fehler wie Parse- und Compile-Fehler, nicht abgefangene Errors, ein fehlgeschlagenes ",[15,991,992],{},"require"," oder das Überschreiten der maximalen Laufzeit; außerdem Speichererschöpfung und Diagnosemeldungen beim Herunterfahren oder beim Aufräumen von Erweiterungen.",[281,995,996,999],{},[284,997,998],{},"Verbraucher:"," INI-Diagnosen, die vor der Request-Initialisierung ausgegeben werden, und die Verarbeitung von Session Upload Progress, die standardmäßig aktiv ist.",[281,1001,1002,1005,1006,1009],{},[284,1003,1004],{},"Als RCE bestätigt:"," der Weg über ",[15,1007,1008],{},"fatal_error_backtraces"," in PHP 8.5 sowie der Session-Upload-Progress-Pfad, dort ausgelöst über Speichererschöpfung.",[281,1011,1012,1015,1016,74,1019,1022,1023,1022,1026,1029,1030,74,1033,1036],{},[284,1013,1014],{},"Erreichbar über:"," ",[15,1017,1018],{},".htaccess",[15,1020,1021],{},"php_value","\u002F",[15,1024,1025],{},"php_flag",[15,1027,1028],{},"php_admin_*"," unter Apache mod_php; unter PHP-FPM bedingt über ",[15,1031,1032],{},"PHP_VALUE",[15,1034,1035],{},"PHP_ADMIN_VALUE"," vom Frontend; LSAPI gilt als Kandidat. Für FrankenPHP fand PHP in der Standardkonfiguration keinen frühen Verbraucher.",[11,1038,1039,1040,70,1043,1046,1047,1050],{},"Was nicht hilft: Fehlermeldungen verstecken. ",[15,1041,1042],{},"error_reporting",[15,1044,1045],{},"display_errors"," und das ",[15,1048,1049],{},"@"," vor einem Aufruf unterdrücken die Anzeige, nicht den Fehler – der Auslöser bleibt.",[20,1052,1054],{"id":1053},"was-vom-leak-falsch-war","Was vom Leak falsch war",[11,1056,1057],{},"Am 20. Oktober kündigte ein anonymer Beitrag im Forum Hacker News zwei PHP-Lücken an, ohne Beleg außer dem Vertrauen des Verfassers in seine Quelle. watchTowr bestätigte am selben Tag, dass die Lücken echt sind; PHP zog das für den 22. Oktober geplante Release um einen Tag vor. Wer die Screenshots von Montag gesehen hat, arbeitet mit mehreren falschen Angaben:",[183,1059,1060,1073],{},[186,1061,1062],{},[189,1063,1064,1067,1070],{},[192,1065,1066],{},"Thema",[192,1068,1069],{},"Leak vom 20. Oktober",[192,1071,1072],{},"PHP-Advisory vom 21. Oktober",[202,1074,1075,1086,1097,1108],{},[189,1076,1077,1080,1083],{},[207,1078,1079],{},"Schweregrad",[207,1081,1082],{},"CVSS 10.0",[207,1084,1085],{},"CVSS 9.2 nach v4.0",[189,1087,1088,1091,1094],{},[207,1089,1090],{},"Ursache",[207,1092,1093],{},"Session Upload Progress",[207,1095,1096],{},"zwei Fehler im Core; Upload Progress ist ein Verbraucher von mehreren",[189,1098,1099,1102,1105],{},[207,1100,1101],{},"Abhilfe",[207,1103,1104],{},"Upload Progress abschalten genügt",[207,1106,1107],{},"nur das Update schließt beide Lücken",[189,1109,1110,1113,1116],{},[207,1111,1112],{},"Betroffen",[207,1114,1115],{},"alle Versionen ab PHP 5",[207,1117,1118],{},"alles vor 8.2.35, 8.3.36, 8.4.27 und 8.5.12",[11,1120,1121],{},"Für die interne Kommunikation gelten die Advisories, nicht die Mitschnitte vom Montag.",[20,1123,1125],{"id":1124},"welche-versionen-einen-patch-bekommen","Welche Versionen einen Patch bekommen",[11,1127,1128,1129,1134],{},"Laut ",[31,1130,1133],{"href":1131,"rel":1132},"https:\u002F\u002Fwww.php.net\u002Farchive\u002F2026.php",[417],"PHPs Release-Ankündigung"," liefert PHP Sicherheitsupdates für die vier unterstützten Branches. Für die End-of-Life-Branches 7.4, 8.0 und 8.1 hat das Sicherheitsteam zusätzlich minimale Quellcode-Backports bereitgestellt, gedacht für selbst gebaute Installationen und für Betreiber ohne LTS-Anbieter.",[183,1136,1137,1149],{},[186,1138,1139],{},[189,1140,1141,1143,1146],{},[192,1142,428],{},[192,1144,1145],{},"Fassung mit Patch",[192,1147,1148],{},"Updates bis",[202,1150,1151,1164,1177,1190,1203,1214],{},[189,1152,1153,1156,1161],{},[207,1154,1155],{},"8.5",[207,1157,1158],{},[15,1159,1160],{},"8.5.12",[207,1162,1163],{},"Ende 2029",[189,1165,1166,1169,1174],{},[207,1167,1168],{},"8.4",[207,1170,1171],{},[15,1172,1173],{},"8.4.27",[207,1175,1176],{},"Ende 2028",[189,1178,1179,1182,1187],{},[207,1180,1181],{},"8.3",[207,1183,1184],{},[15,1185,1186],{},"8.3.36",[207,1188,1189],{},"Ende 2027",[189,1191,1192,1195,1200],{},[207,1193,1194],{},"8.2",[207,1196,1197],{},[15,1198,1199],{},"8.2.35",[207,1201,1202],{},"31. Dezember 2026",[189,1204,1205,1208,1211],{},[207,1206,1207],{},"8.1, 8.0, 7.4",[207,1209,1210],{},"Quellcode-Backport oder Distro-Paket",[207,1212,1213],{},"End of Life",[189,1215,1216,1219,1222],{},[207,1217,1218],{},"7.3 und älter",[207,1220,1221],{},"kein Patch",[207,1223,1213],{},[11,1225,1226,1227,1230,1231,1234,1235,1238],{},"Drei Punkte dazu, die in der Praxis Zeit kosten. Erstens portieren Debian, Ubuntu und Red Hat den Fix in ihre Pakete, ohne die Versionsnummer zu erhöhen: ",[15,1228,1229],{},"php -v"," zeigt weiter die alte Nummer, verbindlich ist das Changelog des Pakets. Zweitens weist PHP ausdrücklich darauf hin, dass das freiwillig gepflegte Repository ",[15,1232,1233],{},"rpms.remirepo.net"," am Release-Tag kein Update hatte, und rät zum Wechsel auf Distributionspakete; AlmaLinux stellte seine Pakete zunächst in ",[15,1236,1237],{},"testing"," bereit. Drittens ist 8.2 nur auf Zeit versorgt – wer heute einen 8.2-Server patcht, plant das Upgrade gleich mit ein.",[11,1240,1241],{},"Wie viele Systeme ohne Herstellerfix laufen, hat das Sicherheitsunternehmen Mallory am 20. Oktober anhand öffentlich sichtbarer HTTP-Banner gezählt: Mehr als 880.000 aus dem Internet erreichbare Hosts meldeten PHP 8.1 oder älter, 59 Prozent der rund 1,5 Millionen Hosts mit Versionsangabe. Rund 740.000 weitere zeigten PHP ohne Version. Im deutschsprachigen Raum liegt der Anteil ohne offiziellen Patch laut Mallory bei 41 Prozent in Deutschland, 53 Prozent in Österreich und 64 Prozent in der Schweiz. Die Zahlen beschreiben Banner, keine bestätigt verwundbaren Systeme.",[20,1243,1245],{"id":1244},"sofortmaßnahmen-wenn-das-update-warten-muss","Sofortmaßnahmen, wenn das Update warten muss",[11,1247,1248,1249,1252,1253,74,1256,1259],{},"PHP ist in diesem Punkt eindeutig: Nur das Update ist eine vollständige Abhilfe. Die folgenden Einstellungen aus den Advisories senken das Risiko, machen eine Installation aber nicht sicher. Sie gehören in die ",[15,1250,1251],{},"php.ini",", den FPM-Pool oder die Server-Konfiguration, also an eine Stelle, die die Anwendung nicht überschreiben kann – ",[15,1254,1255],{},"ini_set()",[15,1257,1258],{},".user.ini"," greifen zu spät. Danach alle Worker neu starten, Container neu bauen.",[840,1261,1265],{"className":1262,"code":1263,"language":1264,"meta":357,"style":357},"language-ini shiki shiki-themes material-theme-lighter github-light github-dark","; gegen CVE-2026-109618 (Speichererschöpfung)\nmemory_limit = -1          ; als php_admin_value, nicht überschreibbar\npost_max_size = 8M         ; 32M, wenn Uploads nötig sind\nupload_max_filesize = 8M   ; muss unter post_max_size bleiben\n\n; gegen CVE-2026-109619 (zurückgebliebener Zustand)\nsession.upload_progress.enabled = 0\nfatal_error_backtraces = 0 ; nur PHP 8.5\n\n; optional, kostet Leistung\npm.max_requests = 1        ; FPM: ein Request pro Worker\n","ini",[15,1266,1267,1275,1280,1285,1291,1296,1302,1308,1314,1319,1325],{"__ignoreMap":357},[1268,1269,1272],"span",{"class":1270,"line":1271},"line",1,[1268,1273,1274],{},"; gegen CVE-2026-109618 (Speichererschöpfung)\n",[1268,1276,1277],{"class":1270,"line":361},[1268,1278,1279],{},"memory_limit = -1          ; als php_admin_value, nicht überschreibbar\n",[1268,1281,1282],{"class":1270,"line":358},[1268,1283,1284],{},"post_max_size = 8M         ; 32M, wenn Uploads nötig sind\n",[1268,1286,1288],{"class":1270,"line":1287},4,[1268,1289,1290],{},"upload_max_filesize = 8M   ; muss unter post_max_size bleiben\n",[1268,1292,1293],{"class":1270,"line":389},[1268,1294,1295],{"emptyLinePlaceholder":387},"\n",[1268,1297,1299],{"class":1270,"line":1298},6,[1268,1300,1301],{},"; gegen CVE-2026-109619 (zurückgebliebener Zustand)\n",[1268,1303,1305],{"class":1270,"line":1304},7,[1268,1306,1307],{},"session.upload_progress.enabled = 0\n",[1268,1309,1311],{"class":1270,"line":1310},8,[1268,1312,1313],{},"fatal_error_backtraces = 0 ; nur PHP 8.5\n",[1268,1315,1317],{"class":1270,"line":1316},9,[1268,1318,1295],{"emptyLinePlaceholder":387},[1268,1320,1322],{"class":1270,"line":1321},10,[1268,1323,1324],{},"; optional, kostet Leistung\n",[1268,1326,1328],{"class":1270,"line":1327},11,[1268,1329,1330],{},"pm.max_requests = 1        ; FPM: ein Request pro Worker\n",[11,1332,1333],{},"Dazu drei Hinweise, die man leicht falsch macht:",[278,1335,1336,1345,1358],{},[281,1337,1338,1344],{},[284,1339,1340,1343],{},[15,1341,1342],{},"memory_limit = -1"," ist kein Tippfehler."," Das Speicherlimit ist hier der Auslöser, den der Angreifer erreichen will. Begrenzen Sie den Speicher stattdessen über Container oder cgroups, und prüfen Sie, dass kein Pool, Verzeichnis oder Anwendungscode ein endliches Limit setzt.",[281,1346,1347,1357],{},[284,1348,1349,1350,1353,1354,692],{},"Kein ",[15,1351,1352],{},"RLIMIT_AS"," und kein ",[15,1355,1356],{},"RLIMIT_DATA"," Davon rät PHP ausdrücklich ab: Solche Limits machen den Angriff leichter, nicht schwerer.",[281,1359,1360,1363,1364,1366],{},[284,1361,1362],{},"Fehler auf erreichbaren Pfaden abstellen."," Dazu zählen Zeitüberschreitungen, die ein Angreifer vorhersehbar auslösen kann, sowie Warnungen aus veralteten INI-Direktiven, die vor der Request-Initialisierung anfallen. Große ",[15,1365,801],{},"-Anfragen lassen sich zusätzlich am Webserver oder in der Web Application Firewall begrenzen.",[11,1368,1369],{},"End-of-Life-Systeme, die sich nicht sofort aktualisieren lassen, gehören hinter VPN oder vom öffentlichen Netz getrennt – so hatte es CERT-EU schon vor dem Release empfohlen.",[20,1371,1373],{"id":1372},"angriffe-was-bis-zum-21-oktober-beobachtet-wurde","Angriffe: was bis zum 21. Oktober beobachtet wurde",[11,1375,1376,1377,1379],{},"Mehrere Anbieter melden Angriffsversuche, bestätigte Übernahmen bislang nicht. watchTowr sah die ersten Versuche an seinen Sensoren etwa zum Zeitpunkt des Releases; Jake Knott, dort für Threat Intelligence zuständig, sagte gegenüber SecurityWeek: „Whilst nobody has been successful to date, we don't expect that will last long.“ Hadrian berichtete wenige Stunden vor dem Release von Ausnutzung „at scale“ und nennt den Session-Upload-Progress-Pfad als überwiegend genutzten Weg. Patchstack, Cloudflare und Vega beobachteten ebenfalls Versuche, Vega mit öffentlich verfügbarem Proof-of-Concept-Code. Im ",[31,1378,155],{"href":154}," stehen beide Lücken mit Stand 21. Oktober nicht.",[11,1381,1382,1383,1386,1387,1392],{},"Dass es schnell geht, war zu erwarten. Mit dem Update wird der korrigierte Quellcode öffentlich, und der Vergleich mit der Vorversion zeigt, wo die Lücke saß. Als ",[15,1384,1385],{},"CVE-2024-4577",", eine PHP-Lücke im CGI-Modus unter Windows, im Juni 2024 bekannt wurde, sah ",[31,1388,1391],{"href":1389,"rel":1390},"https:\u002F\u002Fwww.akamai.com\u002Fblog\u002Fsecurity-research\u002F2024-php-exploit-cve-one-day-after-disclosure",[417],"Akamai"," binnen 24 Stunden Angriffsversuche auf seinen Honeypots. Hier lag der Leak sogar vor dem Patch.",[11,1394,1395,1398,1399,692],{},[284,1396,1397],{},"Nachtrag vom 22. Oktober:"," Amazon Threat Intelligence hat inzwischen einen Angriffsversuch vom 17. Oktober gemeldet, vier Tage vor der Offenlegung. Was daraus für Logs, Spurensuche und Patch-Fristen folgt, steht im ",[31,1400,1401],{"href":888},"Folgebeitrag",[11,1403,1404,1405,70,1407,70,1409,822,1411,1413,1414,70,1417,822,1420,1423],{},"Erkennen lässt sich ein erfolgreicher Angriff am Ende daran, dass ein Prozess startet: Alarm, wenn ",[15,1406,815],{},[15,1408,818],{},[15,1410,821],{},[15,1412,825],{}," eine Shell, einen Interpreter oder Werkzeuge wie ",[15,1415,1416],{},"curl",[15,1418,1419],{},"wget",[15,1421,1422],{},"certutil.exe"," aufruft. Auffällig häufige HTTP-500-Antworten und abgestürzte PHP-Worker sind ein zweites Signal – die Exploits gelingen nicht immer, viele Abstürze bedeuten viele Versuche. Hat ein Webserver eine Shell gestartet, gilt das System als kompromittiert: zuerst vom Netz nehmen, nicht ausschalten, dann Logs, Prozessliste und Verbindungen sichern, nach Webshells, neuen Dateien im Webroot, Cronjobs und Konten suchen, neu aufsetzen und alle Zugangsdaten aus Konfigurationsdateien rotieren. Sie gelten als bekannt.",[20,1425,334],{"id":333},[11,1427,1428],{},"Am Tag des Updates ist selten das Aktualisieren das Problem, sondern die Frage, wo überall PHP läuft. Neben den bekannten Webservern sind das Hosting-Panels wie Plesk und cPanel, die mehrere PHP-Versionen parallel mitbringen, Docker-Images, Appliances mit Web-Oberfläche von der Telefonanlage bis zur Zeiterfassung, Windows-Software mit eingebautem PHP und Intranet-Werkzeuge, die seit Jahren niemand angefasst hat. Wer den Webserver nicht selbst betreibt, fragt beim Hoster nach dem Patch-Termin.",[11,1430,858,1431,1433,1434,347,1436,1438,1439,74,1441,1443],{},[31,1432,341],{"href":340}," laufend von außen, welche Domains, Dienste und Webanwendungen erreichbar sind und welche Technologien darauf laufen; interne Systeme deckt der ",[31,1435,346],{"href":345},[31,1437,351],{"href":350}," gleicht neue CVEs wie ",[15,1440,609],{},[15,1442,928],{}," in Echtzeit mit diesem Inventar ab und zeigt, ob ein Treffer auf der exakten Version beruht oder nur auf dem Produkt, etwa weil ein Server seine Version verbirgt. Ohne Prüfvorlage für einen Verifikationsscan markiert es den Treffer zur manuellen Prüfung. Was ein PHP-Prozess auf dem Server startet, sieht blacklens.io nicht; das bleibt Aufgabe der Überwachung auf dem Host.",[1445,1446,1447],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":357,"searchDepth":358,"depth":358,"links":1449},[1450,1451,1452,1453,1454,1455,1456,1457],{"id":911,"depth":361,"text":912},{"id":945,"depth":361,"text":946},{"id":968,"depth":361,"text":969},{"id":1053,"depth":361,"text":1054},{"id":1124,"depth":361,"text":1125},{"id":1244,"depth":361,"text":1245},{"id":1372,"depth":361,"text":1373},{"id":333,"depth":361,"text":334},"2026-10-21","PHP hat am 21. Oktober 2026 Patches für zwei kritische RCE-Lücken veröffentlicht. Die Ursache liegt im PHP-Core, nicht in Session Upload Progress.",[1461,1463,1466,1469],{"q":912,"a":1462},"PHP2Shell ist der inoffizielle Name für zwei kritische Schwachstellen im PHP-Core, CVE-2026-109618 und CVE-2026-109619, die beide unauthentifizierte Remote Code Execution erlauben. PHP bewertet sie mit CVSS 9.2 nach Version 4.0 und hat am 21. Oktober 2026 Patches veröffentlicht. Die eine Lücke entsteht, wenn PHP der Speicher ausgeht, die andere, wenn Zustand aus einem Request im Worker zurückbleibt und ein späterer Request ihn weiterverwendet.",{"q":1464,"a":1465},"Welche PHP-Versionen bekommen einen Patch gegen PHP2Shell?","Korrigiert sind PHP 8.2.35, 8.3.36, 8.4.27 und 8.5.12; betroffen ist laut den GitHub-Advisories jede Fassung davor. Für die End-of-Life-Branches 7.4, 8.0 und 8.1 hat das PHP-Sicherheitsteam minimale Quellcode-Backports veröffentlicht, PHP 7.3 und älter bekommt keinen Fix. Debian, Ubuntu und Red Hat liefern den Patch im Paket aus, ohne die Versionsnummer zu erhöhen: Hier zählt das Changelog, nicht die Ausgabe von php -v.",{"q":1467,"a":1468},"Reicht es, Session Upload Progress abzuschalten?","Nein. Nach dem Leak kursierte diese Einstellung als Lösung, PHPs Advisory widerspricht: Session Upload Progress ist nur einer von mehreren Wegen in CVE-2026-109619, und für CVE-2026-109618 spielt es keine Rolle. PHP nennt das Update ausdrücklich als einzige vollständige Abhilfe. Die empfohlenen Einstellungen senken das Risiko, machen eine Installation aber nicht sicher.",{"q":1470,"a":1471},"Wie finde ich alle PHP-Systeme im Unternehmen?","Am Tag eines Updates ist selten das Patchen das Problem, sondern die Frage, wo überall PHP läuft, oft unbemerkt in Appliances, Hosting-Panels und alten Intranet-Werkzeugen. blacklens.io erfasst über Attack Surface Management laufend von außen, welche Domains, Dienste und Webanwendungen erreichbar sind und welche Technologien darauf laufen; interne Systeme deckt der Sentry Agent ab. Das Threat Center gleicht neue CVEs mit diesem Inventar ab.","\u002Fimages\u002Finsights\u002Fphp2shell-kritische-rce-lucken-in-php.webp","Abstrakte Darstellung überlagerter Quellcodezeilen in Blau und Rot auf dunklem Hintergrund",{},{"title":897,"description":1459},{"loc":41},"de\u002Finsights\u002Fphp2shell-kritische-rce-lucken-in-php",[394],"php2shell-kritische-rce-lucken-in-php","dCE62Hrts6N0uRO-139f09eBUQRMltWz8qTc_--qgKo",1792748371291]