<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Paul Schell – Blog</title>
    <link>https://paulschell.com/blog/</link>
    <description>Artikel über Symfony-Upgrades, PHP-Migrationen und die Wartung von Legacy-Projekten: Sicherheitsupdates, Support-Enden und Praxistipps für bestehende Projekte.</description>
    <language>de</language>
    <lastBuildDate>Fri, 23 Oct 2026 08:00:00 +0000</lastBuildDate>
    <atom:link href="https://paulschell.com/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Kritische PHP-Sicherheitslücke: jetzt auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 aktualisieren</title>
      <link>https://paulschell.com/blog/php-sicherheitsluecke-oktober-2026/</link>
      <guid isPermaLink="true">https://paulschell.com/blog/php-sicherheitsluecke-oktober-2026/</guid>
      <pubDate>Fri, 23 Oct 2026 08:00:00 +0000</pubDate>
      <dc:creator>Paul Schell</dc:creator>
      <description>Zwei kritische Lücken in PHP erlauben Remote Code Execution ohne Anmeldung. Wer betroffen ist, welche Versionen helfen und was bei PHP 8.1 und älter zu tun ist.</description>
      <content:encoded><![CDATA[<p>Am 21. Oktober 2026 hat das PHP-Team Sicherheitsupdates für alle unterstützten Versionen veröffentlicht. Sie schließen zwei Lücken, über die Angreifer ohne Anmeldung Code auf dem Server ausführen können. Das Update hat Vorrang vor allem anderen.</p>
<h2>Was passiert ist</h2>
    <p>Die beiden Lücken (CVE-2026-109618 und CVE-2026-109619) sind mit CVSS 9.2 bewertet. Beide sitzen in der Request-Verarbeitung von PHP selbst, also vor dem eigenen Anwendungscode. Ein Framework wie Symfony oder Laravel schützt deshalb nicht davor.</p>
    <ul><li>CVE-2026-109618: Wenn PHP während eines Requests der Speicher ausgeht, können interne Daten halb initialisiert bleiben und beim Aufräumen als gültig behandelt werden.</li><li>CVE-2026-109619: Interner Zustand eines Requests kann nach dem Freigeben des Speichers übrig bleiben und vom nächsten Request desselben Workers verwendet werden.</li></ul>
    <h2>Wer betroffen ist</h2>
    <p>Jede PHP-Installation, die Web-Requests verarbeitet: PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. Am höchsten schätzt das PHP-Team das Risiko bei mod_php ein. Dort gibt es einen nachgewiesenen Exploit, der ohne Anmeldung funktioniert.</p>
    <h2>Was du jetzt tun solltest</h2>
    <ol><li>PHP aktualisieren auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35. Linux-Distributionen und LTS-Anbieter hatten die Patches vorab, die Pakete sollten also bereitstehen.</li><li>Alle Worker neu starten (PHP-FPM, Apache, FrankenPHP), damit die neue Version tatsächlich läuft. Mit php -v auf der Kommandozeile sieht man nur die CLI-Version, nicht unbedingt die des Webservers.</li><li>Container-Images neu bauen und ausrollen, auch wenn sich am Code nichts geändert hat.</li><li>Wer PHP aus rpms.remirepo.net bezieht: Das PHP-Team rät, auf die Pakete der Distribution umzusteigen oder selbst zu bauen, weil das Repository die Updates nicht sofort hatte.</li></ol>
    <h2>Wenn das Update nicht sofort geht</h2>
    <p>Das PHP-Team nennt Einstellungen, die einzelne Angriffswege erschweren. Sie machen die Installation ausdrücklich nicht sicher und überbrücken nur die Zeit bis zum Update:</p>
    <ul><li>session.upload_progress.enabled=0 in php.ini oder im FPM-Pool setzen (nicht per ini_set() oder .user.ini) und alle Worker neu starten.</li><li>Unter PHP 8.5 zusätzlich fatal_error_backtraces=0 setzen.</li><li>post_max_size niedrig halten (8M ohne Datei-Uploads, sonst 32M) und Request-Größen schon am Webserver oder Proxy begrenzen.</li></ul>
    <h2>PHP 8.1 und älter</h2>
    <p>PHP 8.1 und ältere Versionen bekommen vom PHP-Projekt keine Updates mehr. Wegen der Schwere hat das PHP-Team diesmal trotzdem minimale Patches für 7.4, 8.0 und 8.1 bereitgestellt, allerdings nur als Quellcode zum Selbstbauen. Manche Distributionen und LTS-Anbieter liefern Backports.</p>
    <p>Das ist eine Ausnahme, auf die man sich beim nächsten Mal nicht verlassen kann. Spätestens jetzt lohnt sich ein Plan für die <a href="https://paulschell.com/php-migration/">Migration auf eine unterstützte Version</a>. Auch PHP 8.2 läuft am 31. Dezember 2026 aus. Welche Versionen noch unterstützt werden, steht auf <a href="https://www.php.net/supported-versions.php" rel="noopener">php.net/supported-versions.php</a>.</p>
    <h2>Quellen</h2>
    <ul class="sources"><li><a href="https://www.php.net/archive/2026.php#2026-10-21-5" rel="noopener">php.net: Security advisory vom 21. Oktober 2026</a></li><li><a href="https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w" rel="noopener">GHSA-w8hw-w9fx-j79w (CVE-2026-109618)</a></li><li><a href="https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp" rel="noopener">GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)</a></li><li><a href="https://www.php.net/supported-versions.php" rel="noopener">php.net: Unterstützte Versionen</a></li></ul>]]></content:encoded>
    </item>
    <item>
      <title>PHP und Symfony im Oktober 2026: Sicherheitsupdates, Support-Enden und was im November kommt</title>
      <link>https://paulschell.com/blog/php-symfony-oktober-2026/</link>
      <guid isPermaLink="true">https://paulschell.com/blog/php-symfony-oktober-2026/</guid>
      <pubDate>Fri, 23 Oct 2026 08:00:00 +0000</pubDate>
      <dc:creator>Paul Schell</dc:creator>
      <description>Der Monatsüberblick: drei Symfony-Sicherheitslücken, das Ende von PHP 8.2, PHP 8.6 und Symfony 8.2 im November und was das für bestehende Projekte bedeutet.</description>
      <content:encoded><![CDATA[<p>Ein voller Monat: Neben der kritischen PHP-Lücke gab es Sicherheitsupdates für Symfony, mehrere Support-Enden rücken näher und im November erscheinen PHP 8.6 und Symfony 8.2. Hier der Überblick und was er für bestehende Projekte bedeutet.</p>
<h2>Sicherheit: PHP und Symfony aktualisieren</h2>
    <p>Das Wichtigste zuerst: Für PHP gibt es seit dem 21. Oktober Updates gegen zwei kritische Lücken mit Remote Code Execution (8.5.12, 8.4.27, 8.3.36, 8.2.35). Die Details stehen in einem <a href="https://paulschell.com/blog/php-sicherheitsluecke-oktober-2026/">eigenen Beitrag</a>.</p>
    <p>Symfony hat am 15. Oktober drei Lücken veröffentlicht, die einen Prozess mit einem einzigen präparierten Request lahmlegen können:</p>
    <ul><li>HttpFoundation (CVE-2026-108082): Ein präparierter Cache-Control-Header kostet pro Request fast eine Sekunde CPU. Betrifft jede Anwendung, die HTTP-Requests verarbeitet.</li><li>Yaml (CVE-2026-109413): Tief verschachteltes Inline-YAML bringt den Prozess zum Absturz. Betrifft auch #[MapRequestPayload], wenn die Yaml-Komponente installiert ist und das Format nicht eingeschränkt wird.</li><li>ExpressionLanguage (CVE-2026-109449): Tief verschachtelte Ausdrücke bringen den Prozess zum Absturz, zum Beispiel über #[Assert\ExpressionSyntax].</li></ul>
    <p>Behoben ist alles in den aktuellen Patch-Versionen 5.4.54, 6.4.48, 7.4.21 und 8.1.9. Ein composer update symfony/* innerhalb der eingesetzten Version reicht.</p>
    <h2>Support-Enden in den nächsten Monaten</h2>
    <ul><li>30. November 2026: Symfony 6.4 bekommt nur noch Sicherheitsupdates (bis November 2027).</li><li>31. Dezember 2026: PHP 8.2 bekommt keine Sicherheitsupdates mehr.</li><li>31. Dezember 2026: PHP 8.4 bekommt nur noch Sicherheitsupdates (bis Ende 2028).</li><li>31. Januar 2027: Symfony 8.1 läuft aus. Symfony 8.0 ist bereits seit Juli 2026 ohne Support.</li></ul>
    <p>Aktuelle Daten stehen auf <a href="https://www.php.net/supported-versions.php" rel="noopener">php.net/supported-versions.php</a> und <a href="https://symfony.com/releases" rel="noopener">symfony.com/releases</a>.</p>
    <h2>Neu im November: PHP 8.6 und Symfony 8.2</h2>
    <p>PHP 8.6 ist für den 19. November 2026 geplant und steht als Release Candidate zum Testen bereit. Symfony 8.2 folgt Ende November und wird bis Juli 2027 gepflegt. Aus dem Symfony-Blog der letzten Wochen:</p>
    <ul><li>Eine neue JsonSchema-Komponente</li><li>Signierte Messenger-Transports mit Rotation der Secrets</li><li>Unterstützung für HTTP-Trailer</li><li>Sichereres HTML in Übersetzungen</li></ul>
    <h2>Was das für bestehende Projekte bedeutet</h2>
    <ul><li>Läuft das Projekt auf PHP 8.2, ist jetzt der Zeitpunkt für das <a href="https://paulschell.com/php-migration/">Update auf 8.3 oder 8.4</a>. Symfony 6.4 und 7.4 laufen auf beiden.</li><li>Symfony 8.0 und 8.1 sind kurzlebige Versionen. Wer darauf sitzt, sollte bis Ende Januar auf 8.2 gehen oder bewusst bei 7.4 LTS bleiben, das bis November 2029 Sicherheitsupdates bekommt.</li><li>Symfony 6.4 ist noch bis November 2027 sicher, aber der <a href="https://paulschell.com/symfony-upgrade/">Weg auf 7.4 LTS</a> lässt sich jetzt in Ruhe planen. Hilfreich ist, die Deprecations schon unter 6.4 abzuarbeiten.</li><li>PHP 8.6 muss niemand sofort einsetzen. Es lohnt sich aber, die CI um einen Lauf mit 8.6 zu ergänzen, um Deprecations früh zu sehen.</li></ul>
    <h2>Quellen</h2>
    <ul class="sources"><li><a href="https://www.php.net/" rel="noopener">php.net: News</a></li><li><a href="https://symfony.com/blog/category/security-advisories" rel="noopener">Symfony: Security Advisories</a></li><li><a href="https://symfony.com/releases" rel="noopener">Symfony: Releases und Support-Zeiträume</a></li><li><a href="https://wiki.php.net/todo/php86" rel="noopener">PHP 8.6: Release-Plan</a></li><li><a href="https://symfony.com/blog/category/living-on-the-edge" rel="noopener">Symfony-Blog: New in Symfony 8.2</a></li></ul>]]></content:encoded>
    </item>
  </channel>
</rss>
