<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PHP on Schallberts Blog</title><link>https://blog.schallbert.de/tags/php/</link><description>Recent content in PHP on Schallberts Blog</description><generator>Hugo</generator><language>de</language><lastBuildDate>Wed, 21 Oct 2026</lastBuildDate><atom:link href="https://blog.schallbert.de/tags/php/index.xml" rel="self" type="application/rss+xml"/><item><title>PHP2shell: Kritische Sicherheitslücken</title><link>https://blog.schallbert.de/php2shell-critical-vulnerability-rce/</link><pubDate>Wed, 21 Oct 2026</pubDate><author>Schallbert</author><guid>https://blog.schallbert.de/php2shell-critical-vulnerability-rce/</guid><description type="html">&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-21-php2shell-logo-cover.avif"&#10; class="post-cover"&#10; alt="Image: The logo for php2shell. It is blue, block-like pixel text on black background."&#10; title="PHP2shell: Kritische Sicherheitslücken" /&gt;&#10;&lt;h2 id="schritt-1-erkennen-wir-haben-ein-problem"&gt;Schritt 1 Erkennen: Wir haben ein Problem.&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;: PHP hat ganz aktuell &lt;a href="https://www.php.net/archive/2026.php#2026-10-20-1" target="_blank" rel="noopener noreferrer" class="external-link"&gt;zwei kritische Schwachstellen&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, die Remote Code Execution ermöglichen. Ihre IDs: &lt;a href="https://cert.europa.eu/publications/security-advisories/2026-018/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;CVE-2026-109618 und CVE-2026-109619&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Da ihre Ursachen nicht im Frontend sondern in der Engine stecken, hilft nur ein Update auf &lt;a href="https://watchtowr.com/intelligence/php-cve-2026-109618-faq/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;PHP 8.5.12, 8.4.27, 8.3.36, oder 8.2.35&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;figure class="media-frame media-frame--center"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-21-phps-php2shell-notice.avif" alt="Image: Screenshot of the PHP News Archive webpage on 21-Oct-2026 about a critical vulnerability allowing Remote Code Execution if exploited even before any application code runs."&gt;&lt;/figure&gt;&#10;&lt;p&gt;&amp;ldquo;&lt;a href="https://www.php.net/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;PHP&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; nutze ich nicht auf &lt;a href="https://blog.schallbert.de/projects/migrating-jekyll-to-hugo/"&gt;meiner Website&lt;/a&gt;&amp;rdquo;, denke ich, als ich heute Vormittag die folgende Nachricht erhalte:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;Hi, kurzer Hinweis: Gegebenenfalls [&amp;hellip;] alles was php nutzt, erstmal abklemmen, [&amp;hellip;] Patch kommt später heute.&amp;rdquo;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Oder bin ich doch betroffen&amp;hellip;? Immerhin nutze ich eine managed Nextcloud-Instanz, und &lt;a href="https://docs.nextcloud.com/server/stable/developer_manual/getting_started/glossary.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Nextcloud ist doch u.A. in &lt;em&gt;PHP&lt;/em&gt; geschrieben&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;&amp;hellip;? Während ich diese Zeilen schreibe, &lt;a href="https://github.com/nextcloud/all-in-one/releases/tag/v14.4.1" target="_blank" rel="noopener noreferrer" class="external-link"&gt;wird ein Fix für Nextcloud verfügbar&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Alles muss also sehr schnell gehen. Heute werden unter Garantie viele Überstunden gemacht.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-1030-mesz"&gt;Status 21.10.2026, 10:30 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Spulen wir zehn Stunden zurück. Es gibt noch keinen Fix. Die Information über die CVEs wurde geleakt und ist jetzt selbst bereits ein paar Stunden alt. Laut &lt;a href="https://en.wikipedia.org/wiki/PHP2Shell" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Wikipedia nutzen &lt;code&gt;69%&lt;/code&gt; aller Websites PHP&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Das Ausnutzen einer so hochkritischen Lücke (&lt;a href="https://blog.schallbert.de/gitea-critical-vulnerability-active-exploitation-rce/#cvss-scoring"&gt;Score&lt;/a&gt; &lt;code&gt;9.2&lt;/code&gt;) bei einer derart weitverbreiteten Technologie hat erwartbar massive Auswirkungen. Entsprechend nervös ist &amp;ldquo;das Internet&amp;rdquo;.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;[&amp;hellip;] organisations should consider isolating internet-facing applications from public networks until a fix is applied and verified. &lt;a href="https://cert.europa.eu/publications/security-advisories/2026-018/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;CERT-EU&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;, pulled 21.10.2026, 10:40&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Interessant, die Empfehlung ist also ernsthaft &amp;ldquo;erstmal vom Netz nehmen&amp;rdquo;.&lt;/p&gt;&#10;&lt;h2 id="schritt-2-sofortmaßnahmen-nextcloud-vom-netz-trennen"&gt;Schritt 2 Sofortmaßnahmen: Nextcloud vom Netz trennen&lt;/h2&gt;&#10;&lt;p&gt;Um einem möglichen Angriff zuvor zu kommen versuche ich folglich, meine Instanz vom Netz zu nehmen. Dafür logge ich mich bei meinem Hoster ein, wechsle auf das Tab &amp;ldquo;Einstellungen&amp;rdquo;, und klicke auf den Reiter &lt;code&gt;ownCloud Console&lt;/code&gt;. Dies ist Nextclouds command-line interface.&lt;/p&gt;&#10;&lt;p&gt;Dort muss ich feststellen, dass kein Befehl zum Abschalten oder de-publishing zur Verfügung steht. Also wähle ich den Nächstbesten:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;occ maintenance:mode --on&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ich versetze meine Instanz also &lt;a href="https://docs.nextcloud.com/server/stable/admin_manual/maintenance/backup.html#maintenance-mode" target="_blank" rel="noopener noreferrer" class="external-link"&gt;in den Wartungsmodus&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;. Dies verhindert neue Logins und friert die Datenbank ein. Anschließend lese ich mich ein wenig in die CVEs ein um herauszufinden, ob mein Schritt genügt.&lt;/p&gt;&#10;&lt;p&gt;Tut er wohl nicht.&lt;/p&gt;&#10;&lt;p&gt;In verschiedenen Foren und auf &lt;a href="https://thehackernews.com/2026/10/php2shell-two-unpatched-critical-php.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;HackerNews&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; erfahre ich, dass eine nicht authentisierte Anfrage bereits den Angriff auslösen kann, bevor überhaupt PHP-Code auf der Serverseite ausgeführt wird.&lt;/p&gt;&#10;&lt;p&gt;Es ist also egal, in welchen Zustand ich meine Instanz versetze - solange sie am Netz ist, bleibt sie angreifbar.&lt;/p&gt;&#10;&lt;h2 id="schritt-3-vorläufige-eindämmung-nextcloud-instanz-deaktivieren-lassen"&gt;Schritt 3 Vorläufige Eindämmung: Nextcloud-Instanz deaktivieren lassen&lt;/h2&gt;&#10;&lt;p&gt;Ich finde auch mit Hilfe diverser Online-Suchanfragen keinen Weg, meine mangaged-Instanz abzuschalten. Ich überlege kurz, die Namensauflösung und das DNS-Routing zu killen. Mir wird aber schnell klar: Bis sich das durchpropagiert, ist der Fix längst draußen.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-1143-mesz"&gt;Status 21.10.2026 11:43 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Ich schreibe also ein Support-Ticket an meinen Hoster mit der Bitte um Hilfe beim Herunternehmen meiner Instanz.&lt;/p&gt;&#10;&lt;figure class="media-frame media-frame--right"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-21-hoster-response-takedown.avif" alt="Image: Screenshot of an E-mail from my hoster, stating that my Nextcloud instance has been deactivated until a patch is available and in place."&gt;&lt;/figure&gt;&#10;&lt;h3 id="status-21102026-1201-mesz"&gt;Status 21.10.2026 12:01 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Ich erhalte eine Mail vom Hoster!&lt;/p&gt;&#10;&lt;p&gt;Tatsache, ich kann die Instanz nicht mehr erreichen und erhalte eine &lt;code&gt;ERR_CERT_COMMON_NAME_INVALID&lt;/code&gt;-Meldung. Klicke ich diese weg, erscheint &lt;strong&gt;REQUESTED PAGE LOCKED&lt;/strong&gt;. Gute Arbeit. Die Reaktionszeit meines Anbieters inlusive Rückmeldung an den Kunden betrug &lt;code&gt;18min&lt;/code&gt;.&lt;/p&gt;&#10;&lt;figure class="media-frame media-frame--center"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-21-instance-locked.avif" alt="Image: A flatscreen showing a &amp;#39;no entry&amp;#39; symbol, connected to multiple small boxes that look like mini servers. Image caption says &amp;#39;Requested page locked&amp;#39;."&gt;&lt;/figure&gt;&#10;&lt;p&gt;Nun wechsle ich den Modus vom Akteur zum Beobachter. Ich sehe erste Exploit-Versuche (oder zumindest Beteuerungen davon) im Web und muss an eine Folie eines Vortrages denken (Zeitstempel &lt;code&gt;11:24&lt;/code&gt;), den ich vor kurzem gesehen habe: &lt;a href="https://kernel-recipes.org/en/2026/security-in-the-llm-age/" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Security in the LLM age&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Dort zeigt ein Linux-Kernel Sachverständiger, dass wir in 2026 im Schnitt sieben Tage &lt;em&gt;vor&lt;/em&gt; einem Patch in betroffener Software bereits Exploits in freier Wildbahn sehen.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-log" data-lang="log"&gt;discover --&amp;gt; disclose --&amp;gt; patch --&amp;gt; deploy&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Diese traditionelle Ereigniskette funktioniert nur bei &amp;ldquo;langsamen&amp;rdquo; Angreifern gut. Wir benötigen etwas, um wieder vor die Lage zu kommen.&lt;/p&gt;&#10;&lt;h2 id="schritt-4-beobachten-der-situation-verfügbarkeit-des-patches-einspielen-erster-betreiber"&gt;Schritt 4 Beobachten der Situation: Verfügbarkeit des Patches, Einspielen erster Betreiber&lt;/h2&gt;&#10;&lt;p&gt;Laut &lt;a href="https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Hackernews&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; wird der Patch um etwa &lt;strong&gt;16:00 MESZ&lt;/strong&gt; verfügbar. Ich besorge mir den RSS-Feed meines Hosters und warte auf Meldung.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-1420-mesz"&gt;Status 21.10.2026 14:20 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Auch das Bundesamt für Sicherheit in der Informationstechnik hat einen &lt;a href="https://www.bsi.bund.de/SharedDocs/Cybersicherheitswarnungen/DE/2026/2026-297981-1032.pdf?__blob=publicationFile&amp;amp;v=4" target="_blank" rel="noopener noreferrer" class="external-link"&gt;BSI-IT-Sicherheitshinweis&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; herausgegeben, wo mit der &amp;ldquo;Kritikalität 3/Orange&amp;rdquo; vor der Lücke gewarnt und folgendes angemerkt wird:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;Der Patch für die Schwachstelle ist heute 16 Uhr deutscher Zeit (14:00 UTC) angekündigt und sollte unverzüglich zu diesem Zeitpunkt installiert werden.&amp;rdquo; - BSI, 21.10.2026&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;figure class="media-frame media-frame--right"&gt;&#10; &lt;img src="https://blog.schallbert.de/assets/images/posts/2026-10-21-hoster-vulnerability-notice.avif" alt="Image: Screenshot of my hoster&amp;#39;s notification feed for the PHP vulnerabilities in question. There are multiple entries at different points in time, all dated 21-Oct-2026."&gt;&lt;/figure&gt;&#10;&lt;h3 id="status-21102026-1634-mesz"&gt;Status 21.10.2026 16:34 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Mein Hoster &lt;a href="https://status.hetzner.com/de/incident/f4144d55-38c3-48d1-8664-7a3429355cd7" target="_blank" rel="noopener noreferrer" class="external-link"&gt;meldet, dass die Patches nun verfügbar seien&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; und mit der Implementierung begonnen würde. Betroffen sind nicht nur die Nextcloud-Instanzen, sondern auch seine komplette Administrationsoberfläche sowie sein Webmailer.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-1952-mesz"&gt;Status 21.10.2026 19:52 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Mein Hoster meldet Vollzug für die von ihm betriebenen Webhosting-Angebote und Managed Servers.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-2240-mesz"&gt;Status 21.10.2026 22:40 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Die Hetzner-Anwendung &lt;em&gt;KonsoleH&lt;/em&gt;, über die ich meine Nextcloud-Instanz verwalte, ist down.&lt;/p&gt;&#10;&lt;h3 id="status-21102026-2300-mesz"&gt;Status 21.10.2026 23:00 MESZ&lt;/h3&gt;&#10;&lt;p&gt;&lt;em&gt;KonsoleH&lt;/em&gt; ist wieder live (und gepatcht).&lt;/p&gt;&#10;&lt;h2 id="schritt-5-erkenntnis-und-schlussfolgerung"&gt;Schritt 5 Erkenntnis und Schlussfolgerung&lt;/h2&gt;&#10;&lt;p&gt;Was lerne ich aus den Ereignissen dieses turbulenten Tages? Wie gehe ich in Zukunft mit Sicherheitslücken um? Und wie erkenne ich überhaupt, dass ein Problem vorliegt?&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Nicht nur der Service als Ganzes ist angreifbar sondern auch seine Komponenten. &amp;ndash;&amp;gt; Kenne alle Komponenten und achte auf Schwachstellen und Patches!&lt;/li&gt;&#10;&lt;li&gt;Die Gegenspieler sind (durch LLMs) unglaublich schnell geworden. &amp;ndash;&amp;gt; Rechne mit Exploit vor Patch-Verfügbarkeit!&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Eine Liste geeigneter Quellen für Verwundbarkeiten, Neuigkeiten und Patches stelle ich mir gerade zusammen. Sobald die Liste stabil ist, werde ich darüber berichten.&lt;/p&gt;&#10;&lt;h2 id="schritt-6-aktionen"&gt;Schritt 6 Aktionen&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Sensible Daten wenn möglich aus dem Netz nehmen. Gedankengang: Was wäre, wenn das weg kommt? Reicht Verfügbarkeit im LAN/Intranet?&lt;/li&gt;&#10;&lt;li&gt;Besseres Monitoring und Abuse detection sind nur konsequent: Früh erkennen, früh sperren, früh melden, früh abschalten, sofort patchen.&lt;/li&gt;&#10;&lt;li&gt;Standardbezugsquellen für Informationen zu verwendeter Software besorgen. CVE-List-Scanner bauen? HackerNews-Filter?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="nachtrag-22102026-0930-mesz"&gt;Nachtrag: 22.10.2026 09:30 MESZ&lt;/h3&gt;&#10;&lt;p&gt;Der Hoster hat meine Nextcloud-Instanz gepatcht und wieder online genommen. Alle Systeme normal. Es gibt nun auch einen &lt;a href="https://de.wikipedia.org/wiki/PHP2Shell" target="_blank" rel="noopener noreferrer" class="external-link"&gt;Wikipedia-Eintrag&lt;span class="external-link-icon" aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt; zum Thema, der sehr aktuell gehalten wird.&lt;/p&gt;&#10;</description></item></channel></rss>