Crmgo Blog

PHP2Shell: Kritické zranitelnosti v PHP (CVE-2026-109618, CVE-2026-109619) — Okamžitě aktualizujte na 8.5.12, 8.4.27, 8.3.36, 8.2.35

PHP2Shell: Kritické zranitelnosti v PHP (CVE-2026-109618, CVE-2026-109619) — Okamžitě aktualizujte na 8.5.12, 8.4.27, 8.3.36, 8.2.35

21. října 2026 vydal PHP nouzové aktualizace 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Opravují dvě kritické zranitelnosti (CVSS 9.2), které umožňují vzdálené spouštění kódu bez ověření na PHP-FPM, mod_php, php-cgi, FrankenPHP a LiteSpeed.

PHP2Shell: Kritické zranitelnosti v PHP (CVE-2026-109618, CVE-2026-109619) — Okamžitě aktualizujte na 8.5.12, 8.4.27, 8.3.36, 8.2.35

Dne 21. října 2026 vydal tým PHP nouzové bezpečnostní aktualizace PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Uzavírají dvě kritické zranitelnosti, které umožňují vzdálené spuštění kódu bez autentizace: CVE-2026-109618 a CVE-2026-109619. Obě mají hodnocení CVSS v4.0 9.2. Média je souhrnně nazývají PHP2Shell.

Co se stalo

Obě zranitelnosti souvisejí s tím, že PHP může ponechat paměť v poškozeném stavu, pokud požadavek skončí havárií:

  • CVE-2026-109618 (GHSA-w8hw-w9fx-j79w): RCE prostřednictvím poškození paměti při nedostatku paměti (OOM). Pokud požadavek dosáhne memory_limit v nevhodný okamžik, interní data požadavku zůstanou inicializována jen částečně. Při čištění požadavku je PHP může považovat za korektní. Na Apache s mod_php lze útok spustit neautentizovaným požadavkem ještě před vykonáním kódu aplikace. Podle PHP Foundation bylo plné vzdálené spuštění kódu demonstrováno s výchozím nastavením. Na PHP-FPM je RCE potvrzeno prostřednictvím cest v kódu aplikace.
  • CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp): RCE prostřednictvím „zastaralého“ globálního stavu. Fatální chyba v nevhodný okamžik může zanechat interní stav ukazující na již uvolněnou paměť předchozího požadavku. Následující požadavek ve stejném workeru může tuto paměť zneužít (use-after-free). Důsledky: únik dat z paměti, pád workeru a spuštění kódu.

Koho se to týká

Podle týmu PHP jsou ohroženy všechny instalace PHP obsluhující webové požadavky: PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Nejvyšší riziko je u mod_php.

Zranitelné verze (podle bulletinu AWS):

  • PHP 8.5.0–8.5.11: opraveno v 8.5.12
  • PHP 8.4.0–8.4.26: opraveno v 8.4.27
  • PHP 8.3.0–8.3.35: opraveno v 8.3.36
  • PHP 8.2.0–8.2.34: opraveno v 8.2.35
  • PHP 8.1 a starší už projekt PHP nepodporuje. Bezpečnostní tým PHP zveřejnil minimální backporty zdrojového kódu pro 7.4, 8.0 a 8.1. Zkontrolujte také aktualizace od svého distributora nebo LTS poskytovatele.

Opravy byly také zahrnuty do testovacího sestavení PHP 8.6.0 RC4.

Jak je to vážné

PHP běží na většině webů na světě, mimo jiné na WordPressu, Joomle, Drupalu, Laravelu a Symfony. Podle BleepingComputer zaznamenal Cloudflare první pokusy o útoky ještě před vydáním záplat a nasadil dočasná pravidla WAF. Britský NCSC vyzval k okamžité aktualizaci nebo k dočasnému vypnutí zranitelných systémů. Vývojáři PHP zdůrazňují, že neexistují plnohodnotná obejití: spolehlivě chrání pouze aktualizace.

Co dělat nyní

  1. Zkontrolujte verzi PHP. V konzoli spusťte php -v. U webového serveru se verze může lišit, proto ji zkontrolujte pomocí phpinfo() nebo v panelu hostingu. Pro FPM spusťte php-fpm -v (nebo například php-fpm8.3 -v).
  2. Aktualizujte na 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35. V Linuxu nainstalujte aktualizované balíčky svého distributora (distributoři obdrželi záplaty předem), například apt update && apt upgrade nebo dnf upgrade php*.
  3. Restartujte všechny workery PHP-FPM, Apache a dalších SAPI. Znovu sestavte a nasaďte Docker image.
  4. Pokud máte PHP 8.1 nebo starší, naplánujte přechod na podporovanou větev. Vezměte také na vědomí, že podpora PHP 8.2 končí 31. prosince 2026.

Dočasná opatření, pokud nelze okamžitě aktualizovat (snižují riziko, ale neodstraňují je):

  • Pro CVE-2026-109618: nastavte memory_limit=-1 pomocí php_admin_value, aby aplikace nemohla tuto hodnotu změnit. Snižte post_max_size na 8M (nebo na 32M, pokud jsou potřeba nahrávání souborů). Omezte velikost a složitost požadavků na úrovni webového serveru nebo proxy.
  • Pro CVE-2026-109619: nastavte session.upload_progress.enabled=0 v php.ini nebo v konfiguraci FPM poolu a restartujte workery. Na PHP 8.5 také nastavte fatal_error_backtraces=0.

Zdroje

Aktualizujeme váš projekt na novou verzi PHP

Tým CRM Go aktualizuje projekty klientů na aktuální zabezpečené verze PHP. Kontrolujeme kompatibilitu kódu, aktualizujeme závislosti a frameworky, testujeme projekt a nasazujeme aktualizace bez výpadku webu. Pokud si nejste jisti, zda je váš server již chráněn před PHP2Shell, napište nám a pomůžeme vám.

Poznámka: příspěvek mohl vzniknout s pomocí AI a lidskou redakcí. Odpovědný: Dmytro Lomaka, Kaltenkirchen.