Krótko: Duża część rozpowszechnionych systemów zarządzania treścią (CMS) i systemów sklepowych jest napisana w PHP, w tym WordPress z WooCommerce, TYPO3, Joomla, Drupal, Contao, Shopware, Magento, czyli Adobe Commerce, oraz PrestaShop. Dochodzą aplikacje wewnętrzne, takie jak Nextcloud, Moodle, MediaWiki i Matomo. Kto prowadzi jeden z tych systemów, jest dotknięty lukami w interpreterze PHP, takimi jak PHP2Shell, bez względu na to, jak aktualny jest sam CMS.
Dlaczego tak wiele stron działa na PHP
PHP od lat 90. jest dopasowane do serwerów WWW i dostępne u praktycznie każdego dostawcy hostingu. CMS oparty na PHP można dlatego prowadzić bez własnej infrastruktury serwerowej, co było i jest atrakcyjne zwłaszcza dla małych i średnich firm, stowarzyszeń i urzędów.
Dla operatorów oznacza to: strona to nie tylko „WordPress” czy „Shopware”, lecz stos z kilku warstw. Na dole działa system operacyjny, nad nim serwer WWW, potem interpreter PHP, a na samej górze CMS z rozszerzeniami. Każda warstwa potrzebuje własnych aktualizacji. Luka w PHP dotyka wszystkich systemów, które na nim bazują.
Dochodzą rozszerzenia: wtyczki, motywy, moduły i interfejsy sklepowe to również kod PHP, często od małych dostawców. Działają z tymi samymi uprawnieniami co CMS i są wykonywane przez to samo środowisko PHP. CMS z wieloma rozszerzeniami ma dlatego większą powierzchnię ataku niż smukła instalacja, nawet jeśli rdzeń jest aktualny.
Liczby dotyczące rozpowszechnienia poszczególnych systemów pomijamy. Nie ma na to źródła, które uznajemy za wiarygodne i porównywalne.
Rozpowszechnione CMS i systemy sklepowe oparte na PHP
Tabela wymienia znane systemy i to, co sami producenci mówią o swojej podstawie technicznej. Wymagań co do wersji celowo nie podajemy, ponieważ zmieniają się z każdym wydaniem.
| System | Rodzaj | Wskazówka o podstawie technicznej |
|---|---|---|
| WordPress, WooCommerce | CMS, rozszerzenie sklepowe | aplikacja PHP, MySQL lub MariaDB według wymagań |
| TYPO3 | CMS | według dokumentacji potrzebuje serwera WWW, PHP i bazy SQL |
| Joomla | CMS | PHP z MySQL, MariaDB lub PostgreSQL |
| Drupal | CMS | PHP; rozszerzenia rdzenia w core/composer.json |
| Contao | CMS | według producenta na pełnym frameworku Symfony |
| Craft CMS | CMS | producent wymienia Yii wśród używanych narzędzi |
| Shopware 6 | sklep | dokumentacja dla programistów traktuje wtyczki jako bundle Symfony |
| Magento Open Source, Adobe Commerce | sklep | PHP i Composer w wymaganiach systemowych |
| PrestaShop | sklep | PHP z własną tabelą zgodności |
| Nextcloud | składowanie plików | Apache z mod_php lub PHP-FPM, Nginx z PHP-FPM |
| Moodle | platforma edukacyjna | według dokumentacji rozwijana w PHP |
| MediaWiki, Matomo | wiki, statystyki | PHP według wymagań instalacyjnych |
Wiele z tych systemów używa wewnętrznie elementów z frameworków PHP i ładuje biblioteki przez Composera. Dla większości mamy własne strony ze wskazówkami dotyczącymi zabezpieczania, na przykład WordPress, Shopware 6 i TYPO3.
Jak ustalić, czy moja strona działa na PHP?
Wiele firm nie wie dokładnie, jakie systemy u nich działają, zwłaszcza gdy stronę zbudowała agencja. Te kroki dają jasność:
- Założyć inwentarz: Wypisać wszystkie domeny, subdomeny i wewnętrzne interfejsy webowe, także systemy testowe i stare strony kampanii.
- Zapytać dostawcę hostingu lub agencję: Jaki system, jaka wersja PHP, jaki tryb pracy (PHP-FPM, mod_php, LiteSpeed)? Proszę poprosić o odpowiedź na piśmie.
- Obejrzeć panel hostingowy: W Plesk, cPanel i podobnych interfejsach wersja PHP jest podana dla każdej strony. Proszę pamiętać, że backporty dystrybucji nie zmieniają wyświetlanego numeru.
- Sprawdzić na serwerze: Administratorzy widzą po procesach i konfiguracji serwera WWW, które środowisko PHP faktycznie wydaje stronę.
- Nie zapominać o urządzeniach: Systemy NAS, routery i urządzenia typu appliance mają często interfejs webowy, który również może działać na PHP.
# Na serwerze: Jakie procesy PHP działają?
ps -eo user,cmd | grep -E 'php-fpm|lsphp|php-cgi|frankenphp' | grep -v grep
Poważnie traktować wymagania systemowe
Każdy producent publikuje, z którymi wersjami PHP jego oprogramowanie zostało przetestowane. Te dane są podstawą każdego planowania aktualizacji: aktualizacja PHP do wersji, której CMS jeszcze nie obsługuje, może sparaliżować stronę. CMS, który działa tylko z wersją PHP bez aktualizacji bezpieczeństwa, to stałe ryzyko.
Proszę więc sprawdzić według wymagań systemowych producenta dla Państwa dokładnej wersji, jakie wersje PHP wchodzą w grę, i porównać to z naprawionymi wersjami PHP. Dla systemów, które działają tylko z PHP 8.1 lub starszym, projekt PHP nie wydaje już oficjalnych aktualizacji.
Co PHP2Shell oznacza dla operatorów CMS i sklepów
PHP2Shell składa się z luk CVE-2026-109618 i CVE-2026-109619 w interpreterze PHP, obie z CVSS 9,2. Umożliwiają wykonanie złośliwego kodu bez logowania. Naprawiono je w PHP 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Aktualizacja CMS tych luk nie zamyka; dlaczego, wyjaśnia nasz artykuł Dlaczego aktualizacja WordPressa nie pomaga przeciw PHP2Shell.
Dla sklepów waży to szczególnie ciężko, ponieważ znajdują się tam dane klientów, zamówienia i dane dostępowe do usług płatniczych i wysyłkowych. Poprawka nie usuwa ponadto złośliwego oprogramowania wprowadzonego wcześniej i nie dowodzi, że nic się nie stało.
Jak konkretnie pomaga PHP SOS?
- Sporządzamy inwentarz Państwa stron opartych na PHP i aplikacji wewnętrznych z systemem, wersją PHP i trybem pracy.
- Porównujemy wymagania producentów z naprawionymi wersjami PHP i planujemy aktualizację dla każdego systemu.
- Instalujemy aktualizacje PHP, restartujemy wszystkie procesy i sprawdzamy potem, czy CMS i sklep działają prawidłowo.
- W razie podejrzenia incydentu badamy system w ramach pomocy natychmiastowej PHP2Shell.
Częste pytania
Czy WordPress działa na PHP?
Tak. WordPress to aplikacja PHP i według oficjalnych wymagań potrzebuje PHP oraz bazy danych MySQL lub MariaDB. Luki w interpreterze PHP dotyczą więc każdej instalacji WordPressa, niezależnie od stanu samego WordPressa.
Czy aktualizacja CMS pomaga przeciw PHP2Shell?
Nie. Luka tkwi w PHP, a nie w CMS. Według drweb.de WordPress.org nie planuje dlatego własnej aktualizacji przeciw niej. Zamyka ją tylko naprawiona wersja PHP i restart wszystkich procesów PHP.
Jak dowiedzieć się, jakiej wersji PHP potrzebuje mój sklep?
Z wymagań systemowych producenta dla Państwa konkretnej wersji. Te dane zmieniają się z każdym większym wydaniem, dlatego należy je odczytać bezpośrednio u producenta, a nie przejmować ze starszych instrukcji.
Czy dotknięte są także aplikacje wewnętrzne?
Tak, jeśli działają na PHP. Składowanie plików, takie jak Nextcloud, platformy edukacyjne, takie jak Moodle, wewnętrzne wiki z MediaWiki czy Matomo do statystyk to aplikacje PHP. Przy inwentaryzacjach często się o nich zapomina.
Czy strona bez .php w adresie nie jest w PHP?
Niekoniecznie. Nowoczesne systemy kierują wszystkie adresy przez centralny index.php, tak że w URL nigdy nie pojawia się .php. Pewność daje tylko wgląd w serwer albo informacja od dostawcy hostingu lub agencji.