AI wykryła dziurę w kodzie na którym działa 70 proc. stron w internecie! Hakerzy ruszyli na polowanie

AI wykryła dziurę w kodzie na którym działa 70 proc. stron w internecie! Hakerzy ruszyli na polowanie

Zespół PHP wydał w środę awaryjne poprawki dwóch krytycznych luk, które pozwalają uruchomić własny kod na serwerze bez logowania. Błędy oznaczone jako CVE-2026-109618 i CVE-2026-109619, nazwane wspólnie PHP2Shell, otrzymały po 9,2 pkt na 10 w skali CVSS (Common Vulnerability Scoring System). Jedną z luk wskazał model GPT-5.6 Sol, z którego korzystali badacze firmy Calif, a obie niezależnie wytropił Wiz, również z pomocą AI. Łatki są dostępne od 16:00 czasu polskiego. Od tej chwili każdy może porównać stary kod z nowym i zobaczyć, gdzie była dziura.

AI znalazła błąd którego ludzie nie potrafili wykorzystać

Oba błędy biorą się z tego, jak PHP reaguje na wyczerpanie pamięci. Napastnik wysyła zapytanie, które w wybranym momencie przekracza limit. PHP przerywa wtedy pracę, zanim po sobie posprząta, a w procesie zostają odwołania do pamięci, którą już zwolniono. Następne zapytanie obsłużone przez ten sam proces może z nich skorzystać. W ten sposób da się odczytać cudze dane albo uruchomić własny kod.

W 2004 r. niemiecki badacz Stefan Esser opisał pierwszą zdalną lukę związaną z limitem pamięci PHP. W 2020 r. do projektu trafiło zgłoszenie o długich zmiennych w formularzach, które wyczerpywały pamięć, ale uznano je za drobiazg. Cztery lata później pokrewny błąd wychwycili audytorzy z fundacji OSTIF (Open Source Technology Improvement Fund) i firmy Quarkslab. Nikt nie udowodnił, że da się go użyć do ataku, więc został w kodzie.

Udowodnił to dopiero Ryan Austin z Calif. Firma dołączyła do programu Patch the Planet, w którym OpenAI wspiera modelami i ekspertami łatanie otwartego oprogramowania. 1 sierpnia, po kilku dniach pracy z GPT-5.6 Sol, badacz miał pierwszą ścieżkę ataku na WordPressa. 11 sierpnia zgłosił błąd zespołowi PHP, a 21 sierpnia drugi. Austin zaznacza, że nie korzystał ze specjalnych narzędzi ani z modelu niedostępnego dla innych. Pomogło mu to, że znał historię dawnych błędów PHP i skierował model na stary trop. Sam z siebie model szukałby raczej wokół nowszych i głośniejszych luk.

19 sierpnia na ten sam problem trafił Wiz, który należy do Google. Jego badacze pracowali z własnym narzędziem Wiz Atlas oraz modelami Gemini 4 Argon i GPT-5.6 Sol, przy czym największy wkład firma przypisuje Gemini. Luki zgłosili 24 sierpnia. Według szczegółowego opisu badaczy Wiz jeden człowiek z pomocą AI zrobił w tydzień to, na co wcześniej zespół światowej klasy potrzebowałby miesięcy. Firma stawia PHP2Shell obok Heartbleed z 2014 r. i Log4Shell z 2021 r., a OpenAI nazywa sprawę jednym z najpoważniejszych problemów bezpieczeństwa, jakie pamięta.

Kogo dotyczą luki PHP2Shell i które wersje są bezpieczne

Zagrożona jest praktycznie każda instalacja PHP, która obsługuje ruch ze stron WWW: PHP-FPM, Apache z modułem mod_php, php-cgi, FrankenPHP i LiteSpeed. Najgorzej wypada mod_php, bo tam atak działa, zanim strona zdąży uruchomić własny kod. Błąd siedzi w samym silniku, więc nie chroni nawet starannie napisana aplikacja. Calif potwierdził przejęcie bez logowania m.in. WordPressa, Drupala, Joomli, MediaWiki (na niej stoi Wikipedia), sklepu Magento, poczty Roundcube, phpMyAdmina, Nextclouda i systemu WHMCS, którym firmy hostingowe rozliczają klientów.

Napastnik dostaje uprawnienia procesu obsługującego stronę, a nie od razu całego serwera. To jednak wystarczy, by czytać pliki aplikacji, hasła do baz danych i klucze zapisane w konfiguracji. Jedna z technik nie wymaga nawet uruchamiania kodu. Pozwala wyciągać fragmenty pamięci procesu, a w nich hasła, tokeny i klucze API należące do innych użytkowników.

Błędy usuwają wersje 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Gałęzie 8.1 i starsze nie dostają już aktualizacji od projektu. Ze względu na wagę sprawy opiekunowie przygotowali dla 7.4, 8.0 i 8.1 minimalne poprawki w kodzie źródłowym, ale przydadzą się one tylko tym, którzy sami kompilują PHP. Reszta musi liczyć na dystrybucję Linuksa albo płatne długie wsparcie, ewentualnie przejść na nowszą wersję. Szczegóły i doraźne obejścia zawiera oficjalny komunikat bezpieczeństwa PHP. Wersja 8.2 też nie ma wiele czasu, bo jej wsparcie kończy się 31 grudnia 2026 r.

Według W3Techs PHP działa na 69,3 proc. witryn, których język serwera da się rozpoznać. Wśród nich 27 proc. używa jeszcze PHP 7, a 7,7 proc. PHP 5. Po doliczeniu wersji 8.0 i 8.1 wychodzi, że około 48,5 proc. stron na PHP pracuje na gałęziach bez oficjalnej łatki. Właściciele stron na WordPressie powinni pamiętać, że aktualizacja WordPressa, wtyczek i motywów nie zmienia wersji PHP na serwerze. Tym zajmuje się hosting.

Okno obrońcy zamknęło się przed czasem

OpenAI przekonuje, że modele znalazły błędy, zanim zrobili to przestępcy. Obrońcy dostali dzięki temu tzw. okno: około dwóch miesięcy na przygotowanie poprawek i zabezpieczeń. Z twórcami PHP pracowali m.in. Cloudflare, AWS, Microsoft, Akamai i Automattic, właściciel WordPress.com. OpenAI wciągnęło do akcji także amerykańską agencję CISA (Cybersecurity and Infrastructure Security Agency) oraz urzędy innych państw.

We wtorek, 20 października, dzień przed planowaną premierą łatek, szczegóły luk wyciekły do sieci. Badacz Kirill Firsov opublikował w serwisie X nagranie, na którym wykonuje polecenia na testowym serwerze z WordPressem. Firma watchTowr odtworzyła pierwszą lukę jeszcze przed premierą poprawek. Zespół PHP musiał z wyprzedzeniem ogłosić termin ich wydania, a CERT Polska zalecił inwentaryzację usług na PHP i, jeśli to możliwe, czasowe wyłączenie tych dostępnych z internetu. Ostrzeżenia wydały też m.in. CERT-EU, niemiecki BSI i brytyjskie NCSC. Część firm, w tym Nintendo, na wszelki wypadek wyłączyła swoje serwisy.

Dane Knecht, dyrektor technologiczny Cloudflare, poinformował w środę, że firma widzi już pierwsze ataki. Jake Knott z watchTowr mówi o próbach przeprowadzanych narzędziami pisanymi naprędce z pomocą AI. Na razie nieudanych, ale jego zdaniem to kwestia czasu. Specjaliści od cyberbezpieczeństwa szacują, że z pomocą AI większość atakujących złoży exploit, czyli gotowy kod wykorzystujący lukę, w mniej niż godzinę. Firma Sansec spodziewała się masowego skanowania już 15 minut po wydaniu poprawek.

Uważamy, że ta historia słabo pasuje do opowieści o przewadze, jaką AI daje obrońcom. Model rzeczywiście znalazł błąd przed przestępcami. Te same modele pozwalają jednak zamienić opublikowaną łatkę w działający atak szybciej, niż wiele firm zdąży przeczytać komunikat. OpenAI samo przyznaje, że jego narzędzia mogą pomóc napastnikom, i zapowiada, że podobnych znalezisk w najbliższych miesiącach będzie znacznie więcej. AI nie daje przewagi żadnej ze stron, tylko przyspiesza oba zegary naraz. Wygrywa ten, kto aktualizuje w ciągu godzin. Kto potrzebuje na to tygodni, właśnie trafił na listę celów.

Dlaczego PHP2Shell jest groźny dla posiadaczy kryptowalut

Na rynku kryptowalut przejęta strona to gotowe narzędzie do kradzieży. Wystarczy podmienić adres do wpłat na stronie projektu, kantoru czy giełdy albo podpiąć drainera, czyli skrypt, który opróżnia portfel po podpisaniu z pozoru niewinnej transakcji. Ofiara wchodzi na znaną domenę z ważnym certyfikatem i nie ma powodu do podejrzeń. Shahak Shalev z Malwarebytes zwraca uwagę, że przejęte strony z dobrą reputacją świetnie nadają się do phishingu i rozsyłania złośliwego oprogramowania. Nie znamy jeszcze przypadku kradzieży kryptowalut z użyciem PHP2Shell, to nasza ocena ryzyka.

Drugie zagrożenie to wyciek pamięci. Na serwerach sklepów, kantorów i serwisów rozliczeniowych leżą klucze API do kont na giełdach i w bramkach płatniczych, a luka pozwala je wyciągnąć, zostawiając niewiele śladów w logach aplikacji. Po aktualizacji rozsądnie jest wymienić takie klucze.

Właściciel strony lub sklepu powinien dziś sprawdzić wersję PHP w panelu hostingu albo zapytać o nią dostawcę. Jeśli aktualizacja nie jest możliwa od ręki, twórcy PHP zalecają m.in. wyłączyć śledzenie postępu wysyłania plików (ustawienie session.upload_progress.enabled=0) i zrestartować wszystkie procesy PHP. To tylko częściowa ochrona. Administratorzy powinni też obserwować, czy procesy php-fpm nie uruchamiają powłoki systemowej albo narzędzi curl i wget, a ślady włamania zgłaszać do CERT Polska przez incydent.cert.pl. Użytkownikom kryptowalut radzimy w najbliższych dniach sprawdzać adres odbiorcy na ekranie portfela sprzętowego i nie podpisywać niespodziewanych transakcji, nawet na stronach znanych od lat.

Redakcja BitHub.pl poleca również: