Dziś, 21 października 2026 r., ukazały się aktualizacje bezpieczeństwa PHP i Node.js. Szczególnie poważne są luki w PHP: dwie z nich pozwalają uruchomić kod na serwerze WWW bez logowania. Ataki odnotowano jeszcze przed publikacją poprawek.
WireBoard jest już zaktualizowany. Aktualizacja nie spowodowała przerw w działaniu. Nie trzeba nic zmieniać na koncie WireBoard ani w skrypcie śledzącym.
Jeśli jednak własna strona lub aplikacja korzysta z PHP albo Node.js, warto przeczytać dalszą część i zainstalować aktualizację jeszcze dziś.
W skrócie
Wersja z poprawkami | Poziom zagrożenia | |
|---|---|---|
PHP | 8.5.12, 8.4.27, 8.3.36 lub 8.2.35 (albo pakiet z poprawkami od dostawcy) | Krytyczny (CVSS 9,2), zdalne wykonanie kodu bez uwierzytelniania |
Node.js | 26.12.1, 24.22.1 lub 22.23.4 | Wysoki |
WordPress, Magento, Drupal, Laravel lub inna aplikacja oparta na PHP? To oznacza, że strona korzysta z PHP i wymaga pilnej aktualizacji.
Hosting współdzielony lub zarządzany? Poprawkę PHP instaluje dostawca hostingu. Trzeba sprawdzić, czy już to zrobił.
Po aktualizacji PHP należy ponownie uruchomić PHP-FPM lub Apache. Bez tego nadal działa stara wersja.
Wersja bez wsparcia (PHP 8.1 lub starsze, Node.js 25, 23, 20 lub starsze)? Oficjalna poprawka się nie pojawi. Należy zaplanować przejście na wspieraną wersję.
Co się stało
PHP: „PHP2Shell” (CVE-2026-109618 i CVE-2026-109619)
Zespół PHP opublikował poprawki dwóch krytycznych luk. Obie otrzymały ocenę 9,2 w skali CVSS v4.0:
CVE-2026-109618: zdalne wykonanie kodu wskutek uszkodzenia pamięci, gdy PHP wyczerpie dostępną pamięć podczas obsługi żądania.
CVE-2026-109619: zdalne wykonanie kodu z wykorzystaniem nieaktualnego stanu globalnego.
Obie luki można wykorzystać zdalnie, bez uwierzytelniania, w domyślnych konfiguracjach. Szczegóły wyciekły do sieci dzień przed planowaną publikacją poprawek. Firmy zajmujące się bezpieczeństwem odnotowały więc ataki i próby wyszukiwania podatnych stron PHP, zanim poprawki były dostępne. Kilka firm zapobiegawczo wyłączyło swoje usługi do czasu aktualizacji.
Problem dotyczy wszystkich wspieranych gałęzi PHP w wersjach wcześniejszych niż 8.2.35, 8.3.36, 8.4.27 i 8.5.12.
Node.js: aktualizacja bezpieczeństwa z października 2026 r.
Node.js opublikował poprawki dla gałęzi 26.x, 24.x i 22.x. Usuwają one 10 luk, z czego 4 o wysokim poziomie zagrożenia. Najważniejsze z nich:
CVE-2026-111497: zapis poza granicami bufora podczas dekompresji Brotli, który może umożliwić zdalne wykonanie kodu. Wystarczy, że aplikacja wywoła
fetch()dla serwera zwracającego dane skompresowane algorytmem Brotli.CVE-2026-105483 / CVE-2026-106069: możliwość ominięcia weryfikacji nazwy hosta w TLS przez użycie nietypowego zapisu adresów IP.
CVE-2026-105482:
dns.resolvemoże wysłać zapytanie o inną nazwę niż ta, którą wcześniej zweryfikował kod aplikacji.
Co zrobiliśmy
Obie aktualizacje wdrożyliśmy dziś w całej infrastrukturze WireBoard. Nie było przerw w działaniu ani wpływu na dane. Sposób korzystania z WireBoard pozostaje bez zmian.
Kogo dotyczy problem?
Trzeba zareagować, jeśli własna strona, aplikacja lub serwer korzysta z:
PHP, bezpośrednio albo za pośrednictwem systemu CMS lub frameworka, np. WordPress, WooCommerce, Magento, Drupal, Joomla, Laravel czy Symfony.
Node.js, np. w aplikacji Next.js, Nuxt, Express lub NestJS, usłudze backendowej albo na serwerze budującym aplikacje.
W razie wątpliwości wystarczy zapytać programistę lub dostawcę hostingu: „Czy nasza strona działa na PHP lub Node.js i czy zainstalowano już dzisiejszą aktualizację bezpieczeństwa?”.
Jak sprawdzić wersję
PHP
Liczy się wersja używana przez serwer WWW. Polecenie php -v w terminalu pokazuje wersję PHP dla wiersza poleceń, która może być inna.
W głównym katalogu strony należy utworzyć plik
info.phpz zawartością<?php phpinfo();Otworzyć go w przeglądarce i sprawdzić pole PHP Version na górze strony.
Od razu usunąć plik: ujawnia pełną konfigurację serwera.
Wersję PHP można też sprawdzić w wielu panelach hostingowych, np. cPanel czy Plesk.
Uwaga dotycząca pakietów dystrybucji Linuksa: Ubuntu, Debian, RHEL i podobne dystrybucje często przenoszą poprawki do starszych wydań bez zmiany numeru wersji. W takim przypadku należy sprawdzić identyfikatory CVE w historii zmian pakietu (szczegóły poniżej).
Node.js
node -v
Poprawki są zainstalowane, jeśli wynik to v26.12.1, v24.22.1, v22.23.4 lub nowsza wersja z tej samej gałęzi.
Jak zaktualizować PHP
Poniżej opisujemy aktualizację zależnie od sposobu instalacji PHP na serwerze.
Hosting współdzielony lub zarządzany
Za PHP i instalację poprawki odpowiada dostawca. Należy sprawdzić jego stronę statusu usług lub komunikaty, a następnie potwierdzić wersję przez phpinfo(), jak opisano wyżej. Jeśli panel pozwala wybrać wersję PHP, a obecnie używana jest wersja 8.1 lub starsza, należy przełączyć się na 8.2 lub nowszą. Wcześniej trzeba sprawdzić zgodność systemu CMS i wtyczek.
Ubuntu / Debian
sudo apt update
# replace 8.3 with the PHP branch you use
sudo apt install --only-upgrade 'php8.3-*'
# confirm the fix is included
apt changelog php8.3-fpm | grep -E 'CVE-2026-10961(8|9)'
Jeśli ostatnie polecenie nic nie zwróci, poprawka nie trafiła jeszcze do repozytorium dystrybucji. Należy sprawdzić komunikaty bezpieczeństwa Ubuntu lub rejestr luk bezpieczeństwa Debiana i spróbować ponownie później. Pakiety PHP z repozytorium Ondřeja Surý’ego aktualizuje się w ten sam sposób.
RHEL / AlmaLinux / Rocky Linux
dnf module list php # see which PHP stream you're on
sudo dnf upgrade 'php*'
# confirm the fix is included
rpm -q --changelog php-fpm | grep -E 'CVE-2026-10961(8|9)'
Jeśli PHP pochodzi z repozytorium Remi, aktualizację należy pobrać właśnie stamtąd.
Docker
Samo pobranie nowego obrazu nie aktualizuje działających kontenerów. Trzeba pobrać obraz, ponownie go zbudować i odtworzyć kontenery:
docker pull php:8.3-fpm # use your tag
docker compose build --pull
docker compose up -d
Dla pewności warto wskazać konkretną wersję z poprawkami w pliku Dockerfile (np. FROM php:8.3.36-fpm).
Kompilacja ze źródeł lub Windows
Wersję z poprawkami można pobrać z php.net/downloads.
Na koniec ponowne uruchomienie PHP
Ten krok łatwo przeoczyć. Działające procesy korzystają ze starej wersji PHP aż do ponownego uruchomienia:
# PHP-FPM (Debian/Ubuntu; replace 8.3 with your branch)
sudo systemctl restart php8.3-fpm
# PHP-FPM (RHEL family)
sudo systemctl restart php-fpm
# Apache with mod_php
sudo systemctl restart apache2 # or httpd on RHEL
Następnie należy ponownie sprawdzić phpinfo(), aby potwierdzić, że serwer korzysta już z nowej wersji.
„Czy wystarczy zmienić ustawienia?”
Nie. Początkowo pojawiły się doraźne obejścia problemu, np. wyłączenie session.upload_progress.enabled. Takie zmiany jedynie ograniczają ryzyko. Jeden z programistów rozwijających PHP publicznie potwierdził, że jedynym skutecznym rozwiązaniem jest aktualizacja PHP. Wdrożone obejście warto pozostawić do czasu aktualizacji, ale nie może jej zastąpić.
Jak zaktualizować Node.js
Sposób instalacji | Aktualizacja |
|---|---|
nvm |
|
Oficjalny instalator | Należy pobrać najnowszą wersję z używanej gałęzi ze strony nodejs.org/en/download |
Docker | Należy wskazać tag konkretnej wersji z poprawkami, np. |
Homebrew |
|
Menedżer pakietów Linuksa | Standardowa aktualizacja z repozytorium dystrybucji lub NodeSource. |
Platforma hostingowa (Vercel, Netlify, Heroku, Render itp.) | Należy sprawdzić ustawienia środowiska uruchomieniowego i komunikaty platformy. Większość dostawców wdraża poprawki automatycznie, ale może być konieczne ponowne wdrożenie aplikacji. |
Po aktualizacji należy ponownie uruchomić aplikację (lub ponownie ją wdrożyć) i potwierdzić wersję poleceniem node -v.
Co z wersjami bez wsparcia?
Oficjalne poprawki są dostępne tylko dla wspieranych wersji:
PHP: 8.2, 8.3, 8.4 i 8.5. PHP 8.1 i starsze nie otrzymają oficjalnego wydania z poprawkami. Niektóre dystrybucje Linuksa i firmy oferujące płatne wsparcie długoterminowe przenoszą poprawki do starszych wersji, warto więc zapytać swojego dostawcę. W pozostałych przypadkach bezpiecznym rozwiązaniem jest przejście na wspieraną gałąź. Warto pamiętać, że PHP 8.2 otrzymuje poprawki bezpieczeństwa tylko do 31 grudnia 2026 r.
Node.js: 22.x, 24.x i 26.x. Gałęzie takie jak 25, 23 i 20 nie są już wspierane i nie otrzymają poprawek.
Jeśli natychmiastowa aktualizacja nie jest możliwa, warto do tego czasu zabezpieczyć stronę zaporą aplikacyjną (WAF) lub ograniczyć do niej dostęp.
Więcej informacji
Oficjalne komunikaty
Przydatne poradniki
GoDaddy: ważna aktualizacja bezpieczeństwa PHP, co muszą zrobić właściciele stron (przystępne omówienie)
Help Net Security: poprawki PHP2Shell już dostępne, czas na aktualizację
ma.ttias.be: jak zainstalować poprawki PHP (status poprawek w poszczególnych dystrybucjach)
Lilting: omówienie poprawek Node.js z października 2026 r. (szczegółowa analiza techniczna)