php2shell (CVE-2026-109618 / 109619) nie da się ocenić przez php -v: gdzie numery wersji rozjeżdżają się w FPM, Dockerze i dystrybucjach
Wersje CLI i FPM, tagi Dockera, backporty dystrybucji i co sprawdzić na hostingu współdzielonym

Ta strona została przetłumaczona przez AI z oryginału w języku japońskim. W razie jakichkolwiek różnic obowiązuje wersja w języku japońskim: 日本語
Jeśli PHP obsługujące żądania WWW (PHP-FPM, mod_php w Apache, php-cgi, FrankenPHP, LiteSpeed) jest starsze niż 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12, dotyczą go luki CVE-2026-109618 i CVE-2026-109619, znane jako php2shell. Rozwiązaniem jest aktualizacja do jednej z tych wersji (a w przypadku pakietów dystrybucji — do poprawionego pakietu) i restart procesów. Sprawdzać należy nie lokalne php -v, lecz „PHP faktycznie obsługujące WWW” oraz „wersję zainstalowanego pakietu”.
Artykuł skupia się na czterech miejscach, w których ocena wyłącznie po numerze wersji prowadzi do błędnych wniosków. Wszystkie liczby i informacje o stanie są podane według stanu na 2026-10-22, a źródła poszczególnych elementów wymieniono na końcu.
Co wiadomo (stan na 2026-10-22)
| Pozycja | Szczegóły |
|---|---|
| CVE | CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) / CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp) |
| Waga | Obie luki mają w komunikacie PHP ocenę CVSS v4.0 9.2 (Critical) |
| Wersje poprawione | 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 (wydane 2026-10-21) |
| Wersje podatne | Wersje starsze niż powyższe wersje poprawione (według advisories na GitHubie) |
| Zakres | Każde PHP obsługujące żądania WWW. Komunikat wymienia PHP-FPM, mod_php, php-cgi, FrankenPHP i LiteSpeed, przy czym mod_php opisano jako najbardziej zagrożone. W advisories na GitHubie wykorzystanie luki zostało zademonstrowane dla mod_php, a FPM i FrankenPHP oznaczono jako „niezademonstrowane” lub „warunkowe”. Brak demonstracji nie oznacza bezpieczeństwa, dlatego niezależnie od sposobu uruchamiania PHP zaktualizuj do wersji poprawionej |
| 8.1 i starsze | Projekt PHP nie wydaje aktualizacji. Dla 7.4 / 8.0 / 8.1 opublikowano minimalne backporty w źródłach, a niektóre dystrybucje i dostawcy LTS mogą dostarczać poprawki |
| 8.2 | Koniec wsparcia 2026-12-31 (według informacji o wydaniu 8.2.35) |
W komunikacie PHP stwierdzono, że „jedyną kompletną poprawką jest aktualizacja”. Środki łagodzące na czas do aktualizacji opisano w dalszej części artykułu.
Pułapka 1: php -v i PHP obsługujące WWW mogą być różne
php -v wpisane przez SSH pokazuje wersję PHP w CLI. Żądania WWW obsługują procesy PHP-FPM albo mod_php załadowany do Apache, czyli osobne pliki binarne i osobne pakiety. Jeśli nowsze PHP zainstalowano tylko dla CLI, równolegle działa kilka wersji albo pula FPM wskazuje inną wersję, strona WWW może pozostać stara, nawet gdy php -v pokazuje wersję poprawioną.
Jest kilka sposobów, by zobaczyć rzeczywistą wersję po stronie WWW.
# FPM w Debianie / Ubuntu (nazwa zależy od wersji)
php-fpm8.3 -v
# FPM w systemach z rodziny RHEL
php-fpm -v
# Sprawdzenie, czy mod_php jest załadowany w Apache
apachectl -M | grep -i php
Najpewniejsza metoda to polecenie, by PHP faktycznie uruchamiane przez WWW samo podało swoją wersję. Umieść tymczasowo plik o trudnej do odgadnięcia nazwie i usuń go zaraz po sprawdzeniu.
<?php echo PHP_VERSION, ' ', PHP_SAPI;
Jeśli PHP_SAPI to fpm-fcgi, PHP działa pod FPM; apache2handler oznacza mod_php; cgi-fcgi oznacza CGI. Nie zostawiaj wystawionego phpinfo(), ponieważ samo w sobie ujawnia ono informacje.
Restart to kolejny krok, który łatwo pominąć. Nawet po wymianie pakietu już działające procesy php-fpm lub Apache mogą nadal wykonywać stary kod. Niektóre konfiguracje restartują się automatycznie po aktualizacji pakietów, inne nie. Po aktualizacji zrestartuj FPM / Apache i ponownie sprawdź wersję po stronie WWW powyższymi metodami.
Pułapka 2: w Dockerze nie oceniaj po nazwie tagu
Oficjalny obraz php ma „ruchome tagi”, takie jak 8.3 i 8.3-fpm, których zawartość jest podmieniana, oraz tagi przypięte, takie jak 8.3.30, które utrzymują stałą wersję.
- Nawet gdy ruchomy tag na Docker Hub wskazuje już wersję poprawioną, Twoja lokalna kopia pozostaje starym obrazem, dopóki nie wykonasz ponownie pull. Działające kontenery również używają starego obrazu, dopóki nie zostaną odtworzone.
DockerfilezFROM php:8.3-fpmnadal zbuduje się na starej bazie, jeśli ta pozostaje w pamięci podręcznej budowania. - Tag przypięty pozostaje stary na zawsze, dopóki sam nie zmienisz numeru.
Czy opublikowano tagi z wersjami poprawionymi, możesz sprawdzić przez API Docker Hub.
curl -s "https://hub.docker.com/v2/repositories/library/php/tags?name=8.3.36&page_size=100"
Oto wyniki zapytań dla czterech linii wydań z 2026-10-22 (czasy w UTC).
| Wersja poprawiona | Znalezione tagi | Kiedy pojawiły się tagi oparte na Debianie (-fpm, -apache itd.) | Tagi oparte na Alpine |
|---|---|---|---|
| 8.5.12 | 54 (w tym RC1) | 2026-10-21 18:59–22:13 | 2026-10-21 22:12–10-22 01:05 |
| 8.4.27 | 54 (w tym RC1) | 2026-10-21 22:09–22:11 | 2026-10-21 22:09–10-22 03:58 |
| 8.3.36 | 27 | 2026-10-21 22:04–22:06 | 2026-10-21 22:04–10-22 03:56 |
| 8.2.35 | 27 | 2026-10-21 21:59–22:01 | 2026-10-21 22:00–10-22 00:58 |
Podczas sprawdzania wyszły trzy miejsca, w których ocena po samych numerach może wprowadzić w błąd.
- „Ostatnio zaktualizowany” nie znaczy „naprawiony”. Przypięty tag
8.3.35został przebudowany 2026-10-21, alePHP_VERSIONw środku nadal wynosiło 8.3.35. Patrz na wersję wewnątrz obrazu, a nie na datę aktualizacji. - Różne digesty mogą oznaczać tę samą zawartość. Tagi
8.3i8.3.36miały różne digesty (wartość indeksu obejmującego wiele architektur), ale obraz amd64 był identyczny i w obuPHP_VERSION=8.3.36. Tak samo w przypadku8.3-fpm/8.3.36-fpm,8.4-apache/8.4.27-apache,latest/8.5.12,8.5-fpmi8.2-fpm:PHP_VERSIONobrazu amd64 była wersją poprawioną. - Dla wersji 8.1 i starszych nie ma poprawionych oficjalnych obrazów.
8.1-fpmbył ostatnio aktualizowany 2025-12-31.
Aby sprawdzić lokalne obrazy i działające kontenery:
# Wersja PHP w obrazie pobranym lokalnie
docker image inspect php:8.3-fpm --format '{{range .Config.Env}}{{println .}}{{end}}' | grep PHP_VERSION
# Pobierz ponownie i odtwórz kontenery
docker compose pull
docker compose up -d
# Jeśli budujesz własny obraz, pobierz ponownie obraz bazowy i dopiero zbuduj
docker compose build --pull
# Wersja wewnątrz działającego kontenera
docker compose exec app php -r 'echo PHP_VERSION, PHP_EOL;'
W ostatnim poleceniu zamień app na nazwę własnej usługi. Każdy oficjalny obraz jest budowany z jedną wartością PHP_VERSION, więc wersja CLI w kontenerze odpowiada wersji FPM / Apache w tym kontenerze (Pułapka 1 dotyczy PHP zainstalowanego bezpośrednio na hoście).
FrankenPHP osadza PHP, więc wersja FrankenPHP i wersja wbudowanego PHP to różne numery. W informacjach o wydaniu FrankenPHP 1.13.2, opublikowanego 2026-10-21, podano, że obrazy Docker zbudowano z PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12, a statyczne pliki binarne z PHP 8.5.12.
Pułapka 3: pakiety dystrybucji są „naprawione pod starym numerem”
Ubuntu i RHEL przenoszą do starszych wersji tylko poprawki (backporting). Numer wyświetlany przez php -v pozostaje stary, więc ocena liczbowa w stylu „niższa niż 8.3.36, więc podatna” oznaczy jako podatny system, który jest już naprawiony. I odwrotnie, na numerze nie można też opierać poczucia bezpieczeństwa. Decyduj na podstawie wersji pakietu i trackera bezpieczeństwa danej dystrybucji.
Poprawione pakiety wymienione w poszczególnych trackerach (stan na 2026-10-22; takie same dla obu CVE):
| Dystrybucja | Pakiet | Wersja poprawiona | Źródło |
|---|---|---|---|
| Ubuntu 22.04 (jammy) | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| Ubuntu 24.04 (noble) | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 26.04 (resolute) | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu (stonking) | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 14.04 / 16.04 / 18.04 / 20.04 | php5 / php7.0 / php7.2 / php7.4 | Dostępne w ramach Ubuntu Pro (w tym Legacy Support) | USN-8948-2 |
| Debian 12 (bookworm) | php8.2 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| Debian 13 (trixie) | php8.4 | 8.4.27-1~deb13u1 | DSA-6574-1 |
| RHEL 10 | php / php8.4 | 8.3.36-1.el10_2 / 8.4.27-1.el10_2 | Red Hat |
| RHEL 9 | php (domyślny) | 8.0.30-8.el9_8.1 | Red Hat |
| RHEL 9 | moduł php 8.2 / 8.3 | 8.2.35-1.module+el9.8.0… / 8.3.36-1.module+el9.8.0… | Red Hat |
| RHEL 8 | moduł php 7.4 / 8.2 | 7.4.33-8.module+el8.10.0… / 8.2.35-1.module+el8.10.0… | Red Hat |
Ta tabela pokazuje wprost, dlaczego same numery nie wystarczają. Poprawiony PHP w Ubuntu 24.04 to wersja zaczynająca się od 8.3.6, dużo niższa niż 8.3.36 z upstreamu. Domyślny PHP w RHEL 9 jest naprawiony, choć pozostaje na 8.0.30, mimo że upstream nie wydaje już poprawek dla 8.0. Debian przeszedł na te same numery co upstream (8.2.35 / 8.4.27).
Niektóre pakiety nie są jeszcze naprawione (stan na 2026-10-22).
- Moduł php 8.4 w RHEL 9 jest oznaczony jako „affected, no fix” (podatny, bez poprawki).
- Debian forky (testing) ma php8.4 8.4.26-1, oznaczony jako „vulnerable”. Pakiet php8.4 w sid (unstable) ma wersję 8.4.27-1 i jest naprawiony.
Przykładowe polecenia do sprawdzenia własnego serwera:
# Debian / Ubuntu: zainstalowana i dostępna wersja
apt-cache policy php8.3-fpm libapache2-mod-php8.3
# Ubuntu: czy to CVE jest naprawione na tym serwerze
pro fix CVE-2026-109618
pro fix CVE-2026-109619
# Rodzina RHEL: czy istnieje aktualizacja naprawiająca to CVE oraz zainstalowana wersja
dnf updateinfo list --cve CVE-2026-109618
rpm -q php-fpm php-cli
Dostosuj nazwę pakietu (php8.3-fpm itd.) do swojego środowiska. Porównaj wyświetloną wersję z „wersją poprawioną” w tabeli powyżej lub w trackerze; jeśli jest taka sama lub wyższa, poprawka jest wdrożona. Następnie wykonaj restart i sprawdzenie po stronie web opisane w Pułapce 1.
Jeśli instalujesz PHP z zewnętrznego repozytorium, a nie z pakietów dystrybucji, musisz śledzić aktualizacje tego repozytorium. Komunikat PHP zauważa, że prowadzone przez wolontariuszy rpms.remirepo.net nie będzie miało aktualizacji w dniu ujawnienia, i zaleca przejście na pakiety dystrybucji lub własne kompilacje.
Pułapka 4: na hostingu współdzielonym i w środowiskach zarządzanych nie możesz sam zaktualizować PHP
W hostingu współdzielonym i zarządzanych środowiskach PHP środowisko uruchomieniowe PHP wymienia dostawca. Tutaj też sam numer wersji nie wystarcza: jeśli dostawca buduje PHP samodzielnie lub przenosi poprawki (backport), numer wersji może pozostać stary.
Są trzy rzeczy, które możesz zrobić samodzielnie.
- Sprawdź wersję po stronie WWW. Użyj tymczasowego pliku z pułapki 1, aby wypisać
PHP_VERSIONiPHP_SAPI, a następnie od razu go usuń. Jeśli panel zarządzania ma wybór wersji PHP, zanotuj też, którą wersję wybrano. - Przeczytaj komunikat dostawcy, a jeśli go nie ma, zapytaj. Zapytaj: „Dla jakich wersji PHP w moim planie zostaną wdrożone (lub zostały wdrożone) poprawki CVE-2026-109618 i CVE-2026-109619 i kiedy?”. Pytanie o numer CVE, a nie o numer wersji, daje odpowiedź obejmującą także backporty.
- Jeśli wybrano wersję bez wsparcia, zaktualizuj ją. Projekt PHP nie wydaje poprawek dla wersji 8.1 i starszych, a wsparcie dla 8.2 kończy się 2026-12-31. Jeśli dostawca nie przeniósł poprawek, pewną drogą jest zmiana wersji.
Stan u dostawców hostingu (stan na 2026-10-22)
W hostingu współdzielonym środowisko PHP zwykle aktualizuje dostawca, a w wielu komunikatach można przeczytać, że „użytkownik nie musi nic robić”. Użytkownik ma dwie rzeczy do zrobienia: sprawdzić oficjalny komunikat swojego dostawcy oraz, jeśli w panelu wybrał starą wersję PHP, zdecydować, czy przełączyć się na wersję zalecaną w komunikacie (taką, która ma wydaną poprawkę).
Poniższa tabela zawiera wyłącznie to, co jest napisane na oficjalnych stronach dostawców (ogłoszenia i informacje o pracach serwisowych), w parafrazie treści komunikatów. Komunikaty są aktualizowane w miarę postępu prac, dlatego rzeczywisty stan zawsze potwierdzaj na wskazanej stronie oficjalnej.
| Dostawca / usługa | Najważniejsze punkty oficjalnego komunikatu | Data/godzina komunikatu | Źródło |
|---|---|---|---|
| エックスサーバー | „Dla PHP 8.2–8.5 zakończono wdrażanie poprawki na wszystkich objętych serwerach.” W przypadku starszych wersji komunikat mówi, że „poprawki są gotowe dla części wersji i będą wdrażane kolejno po zakończeniu weryfikacji”, a pozostałe stare wersje są również w opracowaniu | Zapis z 10/22 6:45 (strona aktualizowana do 13:15) | メンテナンスの進捗状況 |
| シン・レンタルサーバー | Na stronie ogłoszeń znajduje się ten sam „postęp prac serwisowych” co w Xserver, ale nie znalazłem wzmianki odnoszącej się konkretnie do stanu PHP w Shin Rental Server (zapytaj pomoc techniczną) | - | お知らせ |
| ConoHa WING | „Wdrażamy poprawki bezpieczeństwa, zachowując używaną obecnie wersję PHP.” Komunikat mówi, że zazwyczaj użytkownik nie musi zmieniać wersji, ale w przypadku PHP 5.x i 7.x zmiana może być konieczna. Menedżer plików i poczta webowa zostały prewencyjnie tymczasowo wyłączone; wyświetlanie stron i wysyłanie/odbieranie poczty działają normalnie | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| さくらのレンタルサーバ | „Zakończyliśmy reakcję na podatność dla wszystkich wersji PHP wybieralnych w naszym panelu.” Komunikat stwierdza, że „nie są wymagane pilne działania ze strony klientów”, i zaleca przejście w przyszłości na najnowszą wspieraną wersję. Według komunikatu poczta webowa została zabezpieczona 10/22 o 13:45, a phpMyAdmin jest nadal w opracowaniu | 10/22 (aktualizacja 13:45) | PHPの脆弱性(CVE-2026-109618、CVE-2026-109619)への対応状況について |
| ロリポップ! | Komunikat o prewencyjnych pracach serwisowych przed wydaniem wersji z poprawkami (strona serwisu, strony użytkowników itp. będą kolejno wyłączane; strony mogą być wyłączone lub ograniczone bez uprzedzenia). Na 10/22 nie znalazłem komunikatu o zakończeniu poprawki PHP (zapytaj pomoc techniczną) | 10/21 | 【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| ヘテムル | „Dla PHP 8.x i PHP 7.4 zastosowaliśmy oficjalne wersje z poprawkami”; dla pozostałych wersji „wprowadziliśmy własne poprawki na podstawie oficjalnej poprawki”. Ponieważ „część funkcji (session.upload_progress) została wyłączona we wszystkich wersjach”, użytkownicy są proszeni o sprawdzenie, czy ich strony działają. Ponieważ stare wersje mogą nie otrzymać dalszych poprawek, komunikat zaleca przejście na nowszą wersję | Opublikowano 10/21 19:44; zaktualizowano 10/22 12:18 i 13:20 | 【一部完了】【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| mixhost | „Wdrożenie pakietów z poprawką PHP zakończono około godz. 10:18 dnia 22 października 2026 r.” „Zastosowano bez zmiany numeru wersji PHP”; „klienci nie muszą nic robić”. Komunikat zaleca użytkownikom wersji poniżej PHP 8.2 korzystanie z wersji wspieranej (8.2 lub nowszej) | 10/22 | 【完了】PHPの重大な脆弱性への対応について |
| KAGOYA | W usłudze serwerów wynajmowanych PHP 8.2–8.5 będzie aktualizowane kolejno po zweryfikowaniu wersji z poprawkami (wersje docelowe są jeszcze ustalane). Dla serwerów zarządzanych dedykowanych, współdzielonych i przeznaczonych dla WordPressa trwale rozwiązanie jest nadal planowane; jako środki tymczasowe komunikat proponuje rozważenie wyłączenia stron lub ograniczenia dostępu | Opublikowano 10/21 18:20; zaktualizowano 10/22 10:35 | PHPの脆弱性に関する当社サービスへの影響について |
| Zenlogic(IDCフロンティア) | Poprawki wdrażane podczas awaryjnych prac serwisowych (10/21 22:00–10/22 18:00; czas zakończenia może się zmienić). PHP 5.3 zostanie zaktualizowane do najnowszej wersji i nie będzie można tego cofnąć; 7.4 i 8.1 mogą zostać zaktualizowane. Komunikat mówi, że jeśli po aktualizacji pojawią się problemy z wyświetlaniem lub działaniem, trzeba je naprawić po stronie aplikacji | 10/21 | 【ホスティング】緊急メンテナンス作業のお知らせ |
| ColorfulBox | „Zakończyliśmy po stronie serwera aktualizację do wersji z poprawkami, zachowując używaną obecnie wersję PHP.” Komunikat stwierdza, że „klienci nie muszą samodzielnie zmieniać ani przełączać wersji PHP” | 10/22 | 【重要】PHPの脆弱性に対するセキュリティアップデート完了のお知らせ |
| お名前.com レンタルサーバー | „Wdrażamy poprawki bezpieczeństwa, zachowując używaną obecnie wersję PHP.” Komunikat mówi, że zmiana wersji zazwyczaj nie jest potrzebna, ale w przypadku PHP 5.x i 7.x może być konieczna. Menedżer plików i poczta webowa zostały prewencyjnie tymczasowo wyłączone | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| CORESERVER(V2) | „Zakończyliśmy reakcję na podatność dla wszystkich oferowanych wersji PHP”; „po stronie klienta nie są wymagane żadne działania, takie jak zmiana wersji PHP”. Prace serwisowe trwały 10/22 0:00–11:13 i są opisane jako zakończone | Opublikowano 10/21 (zakończono 10/22) | PHP脆弱性の対応(CORESERVER V2)【完了】 |
| XREA | „Zakończyliśmy reakcję na podatność dla PHP 7.4 i nowszych (7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5).” Użytkownicy tych wersji nie muszą zmieniać wersji. Komunikat nie mówi nic o wersjach poniżej 7.4 | Opublikowano 10/21 (zakończono 10/22 0:50) | PHP脆弱性の対応(XREA)【完了】 |
| バリューサーバー | „Zakończyliśmy reakcję na podatność dla PHP 7.4 i nowszych.” Komunikat mówi, że użytkownicy tych wersji nie muszą zmieniać wersji | Opublikowano 10/21 (zakończono 10/22 0:50) | PHP脆弱性の対応(VALUESERVER)【完了】 |
| ABLENET | „W związku z dwiema podatnościami wykrytymi w PHP przeprowadziliśmy wstępne aktualizacje zabezpieczeń w naszym środowisku serwerów wynajmowanych.” Komunikat nie podaje, jakie wersje obejmuje ani czy użytkownicy muszą coś zrobić | 10/22 13:04 | PHPの脆弱性に関するセキュリティアップデートの対応について |
| WebARENA(レンタルサーバー) | Na 10/22 nie znalazłem oficjalnego komunikatu (zapytaj pomoc techniczną) | - | WebARENA お知らせ(2026年) |
Tam, gdzie nie udało mi się znaleźć lub otworzyć oficjalnego komunikatu, w tabeli jest napisane „nie udało się potwierdzić” lub „nie znalazłem”. Brak informacji nie oznacza, że dostawca nie zareagował. Sprawdź to bezpośrednio w ogłoszeniach dostawcy i u jego pomocy technicznej.
Środki łagodzące, gdy nie można od razu zaktualizować
Komunikat PHP wymienia ustawienia zmniejszające powierzchnię ataku do czasu aktualizacji. Sam komunikat wyraźnie jednak stwierdza, że „nie zapewniają one bezpieczeństwa”. Najważniejsze z nich:
- Dla CVE-2026-109619: ustaw
session.upload_progress.enabled=0w php.ini, w puli FPM lub w konfiguracji serwera i zrestartuj wszystkie procesy robocze (ini_set()i.user.iniw FPM tu nie działają). W PHP 8.5 ustaw teżfatal_error_backtraces=0. - Dla CVE-2026-109618: ustaw
memory_limit=-1w sposób, którego aplikacja nie może nadpisać, i zmniejszpost_max_size(8M, jeśli nie ma przesyłania plików, 32M, jeśli jest). Nie używajRLIMIT_AS/RLIMIT_DATAjako zamiennika.
Brytyjskie NCSC zaleca rozważenie wyłączenia z sieci każdego systemu, którego nie da się od razu zaktualizować ani zabezpieczyć, oraz sprawdzenie śladów włamania przed aktualizacją lub zastosowaniem środków łagodzących.
Źródła (sprawdzone 2026-10-22)
- php.net: Security advisory: Critical remote code execution vulnerabilities, update now (2026-10-21)
- php.net: Upcoming Critical PHP Security Release (2026-10-20)
- php.net: komunikaty o wydaniu PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
- GitHub: GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Docker Hub: oficjalny obraz php
- Informacje o wydaniu FrankenPHP 1.13.2
- Debian Security Tracker: CVE-2026-109618 / CVE-2026-109619
- Ubuntu: CVE-2026-109618 / CVE-2026-109619 / USN-8948-1 / USN-8948-2
- Red Hat: CVE-2026-109618 / CVE-2026-109619 (wersje poprawionych pakietów pochodzą z danych VEX Red Hata)
- NCSC: Critical security issue affecting PHP
Najczęściej zadawane pytania
Czy jeśli php -v pokazuje poprawioną wersję, jestem chroniony przed php2shell (CVE-2026-109618 / 109619)?
Niekoniecznie. php -v pokazuje tylko wersję PHP w CLI. PHP-FPM lub mod_php w Apache, które obsługują żądania WWW, mogą być osobnym plikiem binarnym i osobnym pakietem. Wersję FPM sprawdzisz poleceniem php-fpm8.3 -v (w systemach z rodziny RHEL: php-fpm -v). Możesz też otworzyć przez WWW tymczasowy plik wypisujący PHP_VERSION i PHP_SAPI i usunąć go zaraz po sprawdzeniu. Jeśli po aktualizacji nie zrestartowano FPM ani Apache, mogą one nadal działać na starym kodzie.
Czy jeśli używam php:8.3-fpm z Dockera, php2shell jest naprawiony?
Stan na 2026-10-22: php:8.3-fpm na Docker Hub został zastąpiony przez PHP 8.3.36. Jednak lokalny obraz pozostaje stary, dopóki nie pobierzesz go ponownie, a działające kontenery używają starego obrazu, dopóki nie zostaną odtworzone. Uruchom docker compose pull oraz docker compose up -d (albo docker compose build --pull, jeśli budujesz własny obraz). Następnie wykonaj w kontenerze php -r 'echo PHP_VERSION;' i upewnij się, że wersja to 8.3.36 lub nowsza. Przypięte tagi, takie jak 8.3.30, pozostają stare, dopóki sam nie zmienisz numeru.
Ubuntu i RHEL nadal pokazują PHP 8.3.6 lub 8.0.30. Czy php2shell ich dotyczy?
Nie wynika to z samego numeru wersji. Ubuntu i RHEL przenoszą poprawki do starszych wersji (backport), więc pakiet może być poprawiony, a jego numer pozostaje stary. Stan na 2026-10-22: poprawka jest w php8.3 8.3.6-0ubuntu0.24.04.13 w Ubuntu 24.04 oraz w php 8.0.30-8.el9_8.1 w RHEL 9. Porównaj wersję zainstalowanego pakietu (apt-cache policy lub rpm -q) z poprawioną wersją podaną w trackerze bezpieczeństwa Twojej dystrybucji. Możesz też sprawdzić to poleceniem pro fix CVE-2026-109618 w Ubuntu albo dnf updateinfo list --cve CVE-2026-109618 w systemach z rodziny RHEL.