Blog 24/7

koniec wsparcia dla wersji PHP

TAB. 1Hasłopo polsku
Po angielskuPHP end-of-life
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formywycofana wersja PHP · przestarzała wersja PHP · PHP EOL
KategoriaStrony WWW, WordPress i hosting

Koniec wsparcia dla wersji PHP to moment, w którym gałąź języka PHP przestaje otrzymywać jakiekolwiek poprawki od jego twórców. Projekt PHP określa taką wersję jako nieobsługiwaną i zaleca jak najszybszą aktualizację, bo jej użytkownicy mogą być narażeni na niezałatane podatności [1]. Dla strony na WordPressie oznacza to, że nawet aktualny rdzeń, wtyczki i motywy działają na interpreterze, w którym nowe błędy bezpieczeństwa nie będą już poprawiane. W żargonie hostingowym mówi się o wersji „po EOL” (end of life).

Jak działa

Każda gałąź PHP, na przykład 8.3, przechodzi przez stałe etapy. Przez dwa lata od pierwszego stabilnego wydania ma aktywne wsparcie, a przez kolejne dwa lata tylko wsparcie bezpieczeństwa; razem daje to cztery lata [1]. W fazie aktywnej naprawiane są zgłoszone błędy i luki, a nowe wydania poprawkowe ukazują się regularnie [1]. W fazie bezpieczeństwa poprawiane są tylko krytyczne problemy bezpieczeństwa, a wydania pojawiają się wyłącznie w razie potrzeby [1]. Po tym czasie gałąź trafia na listę nieobsługiwanych [2].

RYS. 1Cykl życia gałęzi PHP

Terminy są stałe i znane z góry. Według stanu strony php.net z września 2026 roku wyglądają one tak [1] [2]:

GałąźAktywne wsparcie doWsparcie bezpieczeństwa do
7.4—28 listopada 2022, ostatnie wydanie 7.4.33 [2]
8.0—26 listopada 2023, ostatnie wydanie 8.0.30 [2]
8.1—31 grudnia 2025, ostatnie wydanie 8.1.34 [2]
8.231 grudnia 2024 [1]31 grudnia 2026 [1]
8.331 grudnia 2025 [1]31 grudnia 2027 [1]
8.431 grudnia 2026 [1]31 grudnia 2028 [1]
8.531 grudnia 2027 [1]31 grudnia 2029 [1]

Na liście wersji nieobsługiwanych są też starsze gałęzie, między innymi 5.6, której wsparcie skończyło się 31 grudnia 2018 roku [2].

W WordPressie

WordPress sam nie wymusza aktualnej wersji PHP. Strona wymagań zaleca PHP w wersji 8.3 lub nowszej [3]. Rdzeń uruchomi się także na starszym środowisku, od PHP 7.4, ale dokumentacja ostrzega, że takie wersje osiągnęły oficjalny koniec wsparcia i mogą narażać stronę na podatności [3]. Zgodność WordPressa z daną wersją PHP nie oznacza więc, że ta wersja jest bezpieczna.

Rdzeń sprawdza wersję PHP funkcją wp_check_php_version(). Pyta ona usługę api.wordpress.org/core/serve-happy/1.0/ i dostaje w odpowiedzi między innymi wersję zalecaną, wersję minimalną oraz pola is_supported, is_secure i is_acceptable [4]. Na tej podstawie narzędzie Zdrowie witryny (Site Health) pokazuje ostrzeżenie. Dla wersji bez poprawek komunikat brzmi: „Your site is running on an outdated version of PHP (…), which does not receive security updates. It should be updated.” [5]. W kodzie Site Health znajduje się uwaga, że pole is_secure nie oznacza bezpiecznej wersji PHP, a jedynie to, że wersja wciąż dostaje poprawki bezpieczeństwa [5].

Wersję PHP zwykle wybiera się w panelu hostingu, a na hostingu współdzielonym często tylko tam. Utrzymanie aktualnego środowiska uruchomieniowego jest więc wspólnym zadaniem właściciela strony i dostawcy hostingu. Po zmianie wersji problemem bywa zgodność: porzucona wtyczka albo stary motyw mogą nie działać na nowszym PHP i zatrzymać aktualizację całej strony.

Zagrożenia i skutki

OWASP w kategorii Vulnerable and Outdated Components z 2021 roku uznaje za podatną aplikację, której oprogramowanie jest nieobsługiwane albo przestarzałe, wymieniając wprost środowiska uruchomieniowe, serwery aplikacji i biblioteki [7]. Ryzyko rośnie także wtedy, gdy platforma i zależności nie są aktualizowane w terminie wynikającym z oceny ryzyka [7]. OWASP zwraca uwagę, że aktualizacje w cyklu miesięcznym albo kwartalnym zostawiają organizację na długo narażoną na znane podatności [7]. Wersja po końcu wsparcia jest przypadkiem skrajnym: nie ma cyklu aktualizacji, bo nie ma już poprawek.

Przykładem jest CVE-2024-4577, podatność w PHP-CGI w systemie Windows, oceniona jako wysoka. Pozwalała ona na wstrzyknięcie argumentów i zdalne wykonanie kodu przy niektórych stronach kodowych, jako obejście starszej poprawki dla CVE-2012-1823 [6]. Mechanizm błędu był nietypowy: w systemach Windows z niektórymi stronami kodowymi, między innymi dla Japonii, Chin i Tajwanu, mapowanie znaków „Best-Fit” zamieniało miękki łącznik na zwykły, co pozwalało ominąć wcześniejsze zabezpieczenie przed argumentami w zapytaniu [6]. Poprawione wydania ukazały się dla gałęzi 8.1, 8.2 i 8.3: 8.1.29, 8.2.20 i 8.3.8 [6]. Gałąź 8.0, której wsparcie skończyło się 26 listopada 2023 roku, nie znalazła się wśród poprawionych, a jej ostatnim wydaniem pozostało 8.0.30 [2].

Skutki dla strony na nieobsługiwanym PHP:

  • Każda nowa łatka (patch) do PHP omija to środowisko, więc lista znanych i niezałatanych błędów rośnie z czasem.
  • Nowe wersje wtyczek i motywów przestają obsługiwać stare PHP, co blokuje ich aktualizację i utrwala także ich podatności.
  • Po włamaniu samo oczyszczenie plików nie wystarcza. CERT Polska w zaleceniach dla przejętych stron wymienia utrzymywanie aktualnej wersji oprogramowania serwera obok aktualizacji CMS, wtyczek i motywów [8].

Dobre praktyki

  • Znać wersję PHP każdej strony i datę końca jej wsparcia; oba dane są jawne na php.net [1].
  • Planować przejście na nowszą gałąź z wyprzedzeniem, najlepiej jeszcze w fazie wsparcia bezpieczeństwa obecnej wersji.
  • Testować zmianę wersji w środowisku testowym i mieć aktualną kopię zapasową przed przełączeniem produkcji.
  • Traktować ostrzeżenie Site Health o PHP jako sygnał do działania, nie tylko informację [5].
  • Włączyć wersję PHP do procesu zarządzania poprawkami i aktualizacji oprogramowania, razem z rdzeniem, wtyczkami i motywami.
  • Nie pokazywać wersji PHP w nagłówkach odpowiedzi; ujawnianie wersji ułatwia atakującym dobór celu.
TAB. 2

Przypisy

8
  1. [1] Supported Versions · The PHP Group
  2. [2] Unsupported Branches · The PHP Group
  3. [3] Requirements · WordPress.org
  4. [4] wp_check_php_version() — Code Reference · WordPress.org
  5. [5] class-wp-site-health.php (wordpress-develop) · WordPress.org / GitHub
  6. [6] PHP RCE: A Bypass of CVE-2012-1823, Argument Injection in PHP-CGI (CVE-2024-4577) · The PHP Group / GitHub
  7. [7] A06:2021 – Vulnerable and Outdated Components · OWASP
  8. [8] Przejęta strona — ścieżka postępowania · CERT Polska
TAB. 3

Hasła w tym artykule

11
TAB. 4

Linkują tutaj

7

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com