Fundacja PHP opublikowała wyniki długo oczekiwanego audytu bezpieczeństwa najbardziej newralgicznych komponentów interpretera języka PHP.
Przegląd, przeprowadzony przez specjalistów z firmy Quarkslab SAS, ujawnił kilka poważnych błędów w kodzie źródłowym, które zostały natychmiast naprawione w opublikowanej niedawno wersji 8.4.6. Audyt został zorganizowany przez Open Source Technology Improvement Fund (OSTIF) i sfinansowany przez niemiecką agencję Sovereign Tech Fund.
Najgroźniejsze luki już załatane
W centrum zainteresowania znalazł się projekt php-src, czyli serce interpretera PHP. Eksperci wskazali cztery główne luki bezpieczeństwa, z których każda mogła prowadzić do poważnych konsekwencji w środowiskach produkcyjnych:
-
CVE-2024-9026 – Błąd w logice parsowania danych mógł umożliwić manipulację dziennikami PHP. Atakujący mogli potencjalnie wstawić lub usunąć znaki (nawet przy użyciu standardowego protokołu logowania syslog).
-
CVE-2024-8925 – Niewłaściwa obsługa formularzy multipart powodowała, że niektóre dane mogły być błędnie interpretowane.
-
CVE-2024-8928 – W module obsługującym filtry wykryto problem z zarządzaniem pamięcią, prowadzący do segmentacji błędów (segfault).
-
CVE-2024-8929 – Usterka w sterowniku MySQL mogła skutkować przypadkowym ujawnieniem danych z poprzednich zapytań.
Które części kodu uznano za krytyczne?
Z racji ograniczeń budżetowych, audyt objął jedynie „najbardziej krytyczne komponenty” interpretera. Fundacja PHP wskazała m.in. następujące obszary:
-
PHP-FPM – kluczowy komponent odpowiedzialny za zarządzanie procesami FastCGI, zwiększający wydajność działania aplikacji PHP,
-
Sterowniki baz danych, w tym popularny MySQL,
-
Parsowanie protokołów HTTP, JSON i MIME, kluczowe dla komunikacji z użytkownikami,
-
Moduły kryptograficzne – OpenSSL, funkcje hashowania, generatory liczb losowych i obsługa haseł.
Połowiczna pewność, ale ogólna ocena pozytywna
Choć raport ujawnia potencjalnie groźne luki, autorzy audytu studzą emocje. Eksperci z Quarkslab zauważają, że większość zagrożeń wymagała dość nietypowych warunków wstępnych, rzadko spotykanych w typowych środowiskach produkcyjnych.
„Ogólny standard bezpieczeństwa PHP można uznać za dobry. Specyfikacja oraz jakość kodu są na zadowalającym poziomie” — czytamy w podsumowaniu raportu.
Niemniej audyt nie był kompleksowy. Zabrakło czasu i środków, by objąć nim takie funkcje jak parse_url, parse_str, streams czy xp_ssl, mimo że odpowiadają one za przetwarzanie danych z zewnętrznych źródeł — czyli stanowią potencjalne punkty wejścia dla ataków.
PHP – język starej daty, ale z nową misją
Choć często postrzegany jako przestarzały i niezbyt "modny", PHP wciąż jest jednym z fundamentów internetu. Według danych W3Techs, około 74,3% witryn korzystających z języków serwerowych używa właśnie PHP – głównie dzięki popularności systemów CMS takich jak WordPress, Drupal czy Joomla.
Język bywa obiektem żartów wśród programistów, jednak ma swoje zalety: jest łatwy w użyciu, dobrze udokumentowany i wspierany przez rozbudowany ekosystem. W społeczności deweloperskiej pojawiają się też głosy, że proste aplikacje PHP często działają sprawniej niż współczesne strony zbudowane w oparciu o wielowarstwowe stosy JavaScriptu.
Jak zauważył jeden z użytkowników forum Hacker News: „Wiele dziwactw i problemów PHP zostało już rozwiązanych. To sprawdzona technologia, która po prostu działa.”

Pokaż / Dodaj komentarze do: Audyt bezpieczeństwa PHP odkrył krytyczne błędy. Cztery groźne luki usunięte