· Bezpieczeństwo
Krytyczna luka w PHP i Node.js. Co sprawdziliśmy w jeden dzień
21 października wyszły poprawki dwóch dziur, przez które obca osoba może przejąć serwer bez logowania. Następnego dnia przejrzeliśmy nasze serwery i ponad 120 stron klientów. Piszę, co znaleźliśmy i co możesz sprawdzić u siebie w 15 minut.
Wolisz obejrzeć? Film, 3 minuty:
Co się stało
Pierwsza luka nazywa się PHP2Shell (CVE-2026-109618 i CVE-2026-109619). Dostała ocenę 9,2 na 10. Siedzi w samym PHP, w miejscu, które czyta zapytanie, zanim ruszy jakikolwiek kod strony. Atakujący wysyła spreparowane zapytanie i uruchamia na serwerze własne polecenia. Badacze pokazali to na WordPressie, Drupalu i Joomli.
Aktualizacja WordPressa i wtyczek nic tu nie da. Trzeba zmienić wersję PHP.
- PHP poprawione: 8.2.35, 8.3.36, 8.4.27, 8.5.12
- PHP bez poprawki: 8.1 i starsze
- Node.js poprawione: 22.23.4, 24.22.1
- Node.js bez poprawki: 20 i starsze
Druga sprawa dotyczy Node.js, na którym działa wiele aplikacji i paneli. Najgroźniejszy błąd siedzi w rozpakowywaniu danych skompresowanych formatem Brotli i pozwala wykonać cudzy kod. Zagrożone są dane, które serwer dostaje, i te, które sam pobiera z innych stron.
Co znaleźliśmy
U nas: usługi na Node 20, jeden serwer z włączonym PHP, z którego nic nie korzystało, i trzy nasze strony na hostingu, gdzie wersję PHP sprawdza się w panelu.
U klientów sprawdziliśmy 118 stron z naszego panelu. 14 pokazuje wersję PHP sprzed poprawki, w tym dwie na PHP 5.6 i 7.4, dla których poprawki nie będzie wcale. 61 to strony na hostingach, które ukrywają wersję PHP, więc trzeba ją sprawdzić w panelu. 36 to sklepy i platformy, które łata ich dostawca.
Co zrobiliśmy tego samego dnia
- Większość usług przełączyliśmy z Node 20 na 22.23.4 tego samego dnia, ostatnia czeka na okno serwisowe
- Na serwerze ze stronami statycznymi wyłączyliśmy PHP, bo żadna strona go nie używała
- Dla każdej strony klienta mamy wiersz: hosting, wersja PHP, WordPress, ocena ryzyka
- Zespół przechodzi tę listę od stron bez żadnej poprawki
Sprawdź u siebie
- Sprawdź wersję PHP. W WordPressie: Narzędzia, Zdrowie witryny, Informacje, Serwer. Bez WordPressa: panel hostingu.
- Porównaj z listą. Niższa wersja niż poprawione wyżej? Zmień ją w panelu hostingu albo zapytaj hosting, kiedy wgra poprawkę.
- PHP 8.1 albo starsze przenieś na 8.3 lub 8.4. Najpierw zrób kopię strony, po zmianie przeklikaj formularze i koszyk.
- Masz własny serwer? Zrestartuj PHP. Bez restartu PHP-FPM albo Apache dalej działa stara wersja.
- Sprawdź Node.js na serwerze. Polecenie
node -vuruchom tam, gdzie działa aplikacja, a nie na swoim laptopie. Node 20 przenieś na 22 albo 24. - Wyłącz to, czego nie używasz. PHP na serwerze ze stronami statycznymi to tylko dodatkowe drzwi.
- Zmień hasła, jeśli strona była podatna. Poprawka zamyka dziurę, ale nie cofa tego, co mogło już wyciec: hasła do bazy, klucze API, dostępy.
Nie wiesz, na czym stoi Twoja strona?
Wyślij adres. Sprawdzimy wersję PHP i powiemy, co zrobić. Bezpłatnie.
Wyślij adres strony →Źródła: Node.js, wydania z 21.10.2026, Sekurak, CyberDefence24.
