Awaryjne wydania i skala zagrożenia
PHP opublikowało wersje 8.5.12, 8.4.27, 8.3.36 oraz 8.2.35 usuwające dwie krytyczne luki typu RCE, które w systemie CVSS v4.0 otrzymały ocenę 9,2. Obie usterki dotyczą błędów bezpieczeństwa pamięci w cyklu życia żądania. Pierwsza z nich wiąże się z obsługą sytuacji braku pamięci, natomiast druga dotyczy stanu przetrwającego pamięć, w której się znajdował. Według doniesień problemy te występują w każdej niezałatanej wersji PHP od wydania 5.4. Autorzy ostrzegają, że nie istnieją kompletne obejścia problemu, a aktualizacja pozostaje jedynym bezpiecznym rozwiązaniem.
Przebieg ataków i wyciek informacji
Analiza wykazała, że próby wykorzystania luk rozpoczęły się na kilka dni przed udostępnieniem oficjalnych łatek. Monitoring Amazon Threat Intelligence wykrył pierwszy atak pochodzący z komercyjnej sieci anonimizującej. Z kolei firma Cloudflare wdrożyła reguły dla zapory aplikacji webowej jeszcze przed oficjalnym ogłoszeniem komunikatu. Koordynowana publikacja informacji uległa załamaniu, gdy identyfikatory CVE zaczęły krążyć przed czasem, a jeden z badaczy omyłkowo opublikował materiał wideo z dowodem koncepcji. Dodatkowo jeden z podmiotów opublikował obrazy kontenerów zawierające gotową poprawkę, co umożliwiło analizę kodu przez potencjalnych atakujących przed udostępnieniem oficjalnych wersji.
Problemy z wdrożeniem i weryfikacją
Ekspozycję na zagrożenie różnicuje sposób obsługi PHP. Potwierdzono zdalne wykonanie kodu dla konfiguracji z Apache mod_php, natomiast w przypadku PHP-FPM zweryfikowano scenariusz cyklu życia sesji. W obliczu sytuacji niektóre organizacje decydowały się na tymczasowe wyłączenie serwerów. Administratorzy mierzyli się z problemem identyfikacji wersji oraz trudnościami w sprawdzaniu pakietów systemowych, gdzie numery dystrybucji mogły mylić przy poleceniu sprawdzającym wersję CLI. Wymagane było również ponowne uruchomienie wszystkich procesów roboczych w celu usunięcia starego silnika z pamięci.