Luka w PHPMailer (CVE-2016-10033): formularz kontaktowy może otworzyć serwer strony
Stary błąd w bibliotece PHPMailer pozwala przez formularz kontaktowy wykonać kod na serwerze strony, bez logowania. CISA potwierdza ataki, gotowe narzędzia są publiczne. Sprawdź, czy Twoje strony mają PHPMailer 5.2.20 lub nowszy.
Ten alert jest dla zarządu, CTO i CFO firm, które mają stronę internetową, sklep lub aplikację w PHP z formularzem wysyłającym e-maile, zwłaszcza starszą, utrzymywaną przez zewnętrzną agencję. Werdykt: jeśli strona korzysta z biblioteki PHPMailer starszej niż 5.2.20 albo ze starego WordPressa lub Joomli, zleć sprawdzenie i aktualizację dziś, bo luka sprzed prawie dziesięciu lat jest nadal wykorzystywana w atakach.
1. CO SIĘ STAŁO? Fakty w pigułce
Amerykańska agencja CISA 7 lipca 2025 roku dopisała podatność CVE-2016-10033 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. Luka została ujawniona w grudniu 2016 roku, więc do katalogu trafiła po prawie dziewięciu latach, co pokazuje, jak długo w internecie żyją nieaktualizowane strony.
PHPMailer to popularna biblioteka, czyli gotowy fragment kodu, którego strony w PHP używają do wysyłania e-maili, na przykład z formularza kontaktowego. Błąd pozwala osobie wypełniającej formularz wpisać w polu adresu nadawcy specjalnie spreparowany tekst, który zamiast adresu staje się poleceniem dla serwera. Nie trzeba konta ani hasła. Nieudana próba zwykle kończy się zawieszeniem strony, udana wykonaniem kodu napastnika.
Termin naprawy wyznaczony przez CISA minął 28 lipca 2025 roku. Pierwsza poprawka okazała się niepełna, dlatego trzeba mieć wersję, która zamyka także lukę CVE-2016-10045.
Element
Szczegóły
Identyfikator CVE
CVE-2016-10033
Data dodania do CISA KEV
2025-07-07
Termin naprawy wg CISA
2025-07-28 (21 dni od wpisu)
Produkt
PHPMailer (biblioteka PHP do wysyłania e-maili); w NVD także WordPress i Joomla, które ją zawierały
Wersje zagrożone
PHPMailer starszy niż 5.2.18 (CVE-2016-10033) oraz starszy niż 5.2.20 (obejście niepełnej poprawki, CVE-2016-10045). WordPress do 4.7 włącznie, Joomla od 1.5.0 do 3.6.5 włącznie (NVD). Warunek: wysyłka przez funkcję mail() PHP (tryb isMail) i adres nadawcy pobierany od użytkownika, np. z formularza. Wysyłka przez SMTP nie jest podatna (producent)
Wersje bezpieczne
PHPMailer 5.2.20 lub nowszy, aby zamknąć obie luki (sama 5.2.18 nie wystarcza). Najnowsze wydanie: 7.1.1 (maj 2026). WordPress i Joomla: wersje nowsze niż wymienione wyżej, najlepiej aktualne
Typ podatności
Wstrzyknięcie argumentów i poleceń prowadzące do wykonania kodu; CWE-88 (NVD) oraz CWE-77 (CISA)
Ocena CVSS
NVD: 9.8 (CVSS 3.1, KRYTYCZNA), atak przez sieć, bez logowania i bez udziału użytkownika. NVD: 7.5 (CVSS 2.0, WYSOKA). GitHub Advisory: krytyczna. Canonical (Ubuntu): priorytet średni dla własnych pakietów
2. O CO CHODZI W PROSTYCH SŁOWACH?
Wyobraź sobie biuro, w którym recepcjonistka przepisuje dane z formularza klienta na zlecenie dla kuriera: „Nadawca: …, doręcz do: …”. Klient w polu „nadawca” wpisuje: „Jan Kowalski” i dalej, po cudzysłowie, „oraz wydaj kurierowi klucze do magazynu”. Recepcjonistka przepisuje wszystko dosłownie, a kurier wykonuje całe zlecenie, bo nie wie, gdzie kończy się nazwisko, a zaczyna polecenie.
Tak działa ten błąd. Formularz kontaktowy przekazuje adres nadawcy do systemowego programu pocztowego w formie polecenia tekstowego. Odpowiednia kombinacja znaków (odwrotny ukośnik i cudzysłów) kończy część z adresem, a reszta tekstu zostaje odczytana jako dodatkowe polecenie. Właściciel gabinetu czy sklepu zwykle nie wie, że na jego stronie jest PHPMailer, bo biblioteka jest ukryta wewnątrz WordPressa, Joomli, wtyczki albo kodu napisanego przez agencję.
💡 Biblioteka to gotowy fragment kodu dołączany do strony zamiast pisania go od nowa. Wstrzyknięcie polecenia to sytuacja, w której dane od użytkownika zostają wykonane jako rozkaz dla serwera. SMTP to standardowy sposób wysyłania poczty przez serwer pocztowy, który w PHPMailer nie uruchamia poleceń systemowych. Exploit to gotowe narzędzie do wykorzystania luki. KEV to katalog CISA z lukami potwierdzonymi jako wykorzystywane.
Scenariusz
Normalnie
Z podatnością
Klient wysyła zapytanie z formularza
Firma dostaje e-mail z treścią zapytania
Tak samo, dopóki ktoś nie wpisze spreparowanego adresu
Ktoś wpisuje dziwny adres nadawcy
Formularz odrzuca adres lub wysyła zwykły e-mail
Serwer wykonuje ukryte w adresie polecenie
Strona kilka razy się zawiesza
Problem hostingu
Mogą to być nieudane próby ataku
Wysyłka poczty przez SMTP
Bezpieczna
Nadal bezpieczna, ten tryb nie uruchamia poleceń
Agencja „nałożyła poprawkę”
Sprawa zamknięta
Jeśli tylko 5.2.18, strona dalej podatna na CVE-2016-10045
źródło: magnific.com
3. JAK HAKERZY TO WYKORZYSTUJĄ?
Poniżej typowy przebieg ataku dla tej klasy podatności. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. Formularze kontaktowe są z założenia dostępne dla każdego w internecie, a gotowe narzędzia do tej luki są publiczne od lat (dziewięć wpisów w Exploit-DB i moduł Metasploit), więc atak łatwo zautomatyzować i prowadzić masowo na stare strony.
Etap
Czas
Akcja hakerów
Wynik
1. Skanowanie
T+0 min
Automatyczne wyszukiwanie stron ze starym WordPressem, Joomlą lub formularzami w PHP
Lista potencjalnych celów
2. Próba
T+kilka minut
Wysłanie formularza ze spreparowanym adresem nadawcy za pomocą gotowego narzędzia
Wykonanie kodu albo zawieszenie strony przy nieudanej próbie
3. Zapis tylnej furtki
T+kilka minut
Umieszczenie na serwerze małego pliku, który pozwala wracać i wydawać polecenia
Stały dostęp do serwera strony
4. Rozpoznanie
T+godziny do dni
Odczyt plików konfiguracyjnych, haseł do bazy danych i skrzynek pocztowych
Dostęp do danych klientów i zamówień
5. Wykorzystanie
T+dni
Kradzież danych, podmiana strony, rozsyłanie spamu lub złośliwego kodu do odwiedzających
Strona pracuje dla napastnika
6. Skutek
T+tygodnie
Blokada domeny w wyszukiwarkach i filtrach pocztowych, wyciek danych
🔴 Scenariusz 1: strona gabinetu zrobiona kilka lat temu na starym WordPressie zostaje przejęta przez formularz kontaktowy, a napastnik odczytuje z bazy zapytania pacjentów z danymi kontaktowymi.
🔴 Scenariusz 2: sklep internetowy z własnym formularzem rejestracji zaczyna rozsyłać spam, a domena firmy trafia na czarne listy, więc faktury i potwierdzenia zamówień lądują u klientów w folderze spamu.
🔴 Scenariusz 3: agencja zgłasza „łatkę nałożoną”, ale strona ma PHPMailer 5.2.18, więc pozostaje podatna na obejście CVE-2016-10045 wykorzystywane tymi samymi narzędziami.
4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?
Strona internetowa jest oprogramowaniem, a nie ulotką wydrukowaną raz na zawsze. Atak nie wymaga konta, jest zautomatyzowany i trafia w strony, o które nikt nie dba. Przejęty serwer strony często ma dostęp do bazy klientów, skrzynek pocztowych i domeny firmy.
Obszar biznesu
Potencjalny wpływ
Czas do wystąpienia
Koszty szacunkowe
Operacyjny
Strona lub sklep wyłączone na czas czyszczenia, blokada wysyłki e-maili z domeny
Godziny do dni
10 tys. do 80 tys. PLN (przestój sprzedaży, odtworzenie strony)
Bezpieczeństwo danych
Wyciek danych z formularzy, kont klientów i zamówień
Dni
15 tys. do 120 tys. PLN (analiza powłamaniowa, obsługa incydentu)
Finansowy
Utracone zamówienia, koszty pilnej pracy agencji, ewentualna budowa nowej strony
Tygodnie
20 tys. do 200 tys. PLN łącznie
Reputacyjny
Ostrzeżenia w przeglądarkach i wyszukiwarkach, spam wysyłany w imieniu firmy
Dni do miesięcy
20 tys. do 250 tys. PLN (utraceni klienci)
Prawny
Obowiązek zgłoszenia naruszenia do UODO w ciągu 72 godzin i ewentualnie powiadomienia osób; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności
72 godziny od wykrycia
10 tys. do 80 tys. PLN (obsługa prawna i zgłoszenia), bez ewentualnej kary
Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.
Interpretacja: prawdopodobieństwo jest bardzo wysokie (gotowe narzędzia, brak logowania, EPSS około 99,7%), a wpływ wysoki, bo napastnik przejmuje serwer strony, choć zwykle nie całą sieć firmy; strona wysyłająca pocztę przez SMTP lub z ustalonym adresem nadawcy jest poza zasięgiem tej luki.
5. CO MUSISZ ZROBIĆ NATYCHMIAST?
Lp.
Priorytet
Działanie
Termin
Odpowiedzialny
1
🔴 NATYCHMIAST
Zlecić agencji lub administratorowi sprawdzenie, czy strony, sklepy i aplikacje firmy zawierają PHPMailer i w jakiej wersji
Dziś
CTO / agencja internetowa
2
🔴 NATYCHMIAST
Zaktualizować PHPMailer do wersji 5.2.20 lub nowszej, najlepiej do aktualnej gałęzi 7.x; zaktualizować WordPress, Joomlę i wtyczki
Dziś
Agencja / administrator strony
3
🔴 NATYCHMIAST
Jeśli aktualizacja nie jest możliwa od ręki: wyłączyć formularze wysyłające e-mail z adresem nadawcy podanym przez użytkownika
Dziś
Agencja / administrator strony
4
🟠 PILNIE
Sprawdzić serwer pod kątem nieznanych plików PHP i przejrzeć logi formularzy oraz zawieszeń strony
Do 3 dni
Administrator / zewnętrzny zespół bezpieczeństwa
5
🟠 PILNIE
Zmienić hasła do bazy danych, panelu strony i skrzynek, jeśli pojawią się ślady włamania
Do 3 dni
Administrator strony
6
🟡 WAŻNIE
Przełączyć wysyłkę e-maili na SMTP i ustawić stały adres nadawcy w domenie firmy, a adres klienta tylko jako „odpowiedz do”
Do 30 dni
Agencja internetowa
7
🟡 WAŻNIE
Podpisać umowę na stałe utrzymanie i aktualizacje strony z określonym czasem reakcji
Do 30 dni
CTO / CFO
Jeśli aktualizacja nie jest dostępna
Producent wydał poprawki w 2016 roku, a dostawcy systemów (m.in. Debian, Ubuntu) także je udostępnili, więc docelowo trzeba zaktualizować bibliotekę. Do tego czasu pomagają poniższe miary, zgodne z zaleceniami opiekunów PHPMailer. Oceny efektywności to ocena ekspercka.
Czasowa miara ochronna
Efektywność
Łatwość wdrożenia
Wysyłka przez SMTP zamiast funkcji mail() (producent: tryb SMTP nie uruchamia poleceń)
Wysoka
Średnia: zmiana konfiguracji lub kodu
Stały adres nadawcy w domenie firmy, adres klienta tylko w polu „odpowiedz do” (zalecenie producenta)
Wysoka
Średnia: zmiana kodu formularza
Tymczasowe wyłączenie formularzy kontaktowych i rejestracji
Wysoka, kosztem utraty zapytań
Łatwa
Serwer pocztowy Postfix zamiast Sendmail
Niska do średniej: producent ostrzega, by na tym nie polegać
Trudna
Przed i po działaniu
Stan
Przed działaniem
Po działaniu
Wersja PHPMailer
Nieznana lub starsza niż 5.2.20
5.2.20 lub nowsza, najlepiej aktualna
Formularz kontaktowy
Adres nadawcy wpisywany przez użytkownika
Stały adres nadawcy, wysyłka przez SMTP
Wiedza firmy
Nikt nie wie, z czego zbudowana jest strona
Lista składników i ich wersji
Odpowiedzialność
Strona „zrobiona raz” bez opieki
Umowa na aktualizacje z terminem reakcji
Zgodność z terminem CISA
Zaległość od 28 lipca 2025 (termin wiąże agencje USA, ale jest dobrym punktem odniesienia)
Sygnały zagrożenia dla CVE-2016-10033CVSS 3.1 (NVD) 9.8/10 ████████████████████ KRYTYCZNACVSS 2.0 (NVD) 7.5/10 ███████████████░░░░░ WYSOKAEPSS (próba w 30 dni) ~99.7% ████████████████████ BARDZO WYSOKAGotowe exploity TAK ████████████████████ Exploit-DB, MetasploitCISA KEV TAK ████████████████████ ataki potwierdzone
Linia czasu incydentu
2016-12 Dawid Golunski ujawnia lukę, PHPMailer wydaje wersję 5.2.182016-12 Ujawnienie obejścia CVE-2016-10045, poprawka w PHPMailer 5.2.202016-12-30 Publikacja CVE-2016-10033 i CVE-2016-10045 w NVD2017-01 Debian udostępnia poprawione pakiety (przełom 2016 i 2017)2023-03-15 Canonical publikuje poprawki PHPMailer dla Ubuntu 16.04 do 22.042025-07-07 CISA dodaje CVE-2016-10033 do katalogu KEV2025-07-28 Termin naprawy wg CISA dla agencji federalnych2026-05-18 Wydanie PHPMailer 7.1.1 (najnowsze w chwili pisania) ... prawie 14 miesięcy od terminu CISA2026-09-17: TUTAJ JESTEŚMY
7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO
Spisać wszystkie strony, sklepy i aplikacje firmy z formularzami wysyłającymi e-maile
CTO
DZISIAJ
2
Uzyskać od agencji pisemną informację o wersji PHPMailer, WordPressa lub Joomli na każdej stronie
CTO
DZISIAJ
3
Zatwierdzić natychmiastową aktualizację lub czasowe wyłączenie formularzy
CTO
DZISIAJ
4
Zlecić sprawdzenie serwerów stron pod kątem śladów włamania
CTO
DO JUTRA
5
Sprawdzić, czy firma ma umowę na utrzymanie strony i kto płaci za pilne poprawki
CFO
DO JUTRA
6
Zarezerwować budżet na aktualizację lub przebudowę strony, jeśli okaże się zbyt stara
CFO
DO JUTRA
7
Sprawdzić w polisie cyberubezpieczenia, czy obejmuje strony internetowe i wymogi dotyczące znanych luk
CFO
DO JUTRA
8. PYTANIA DO TWOJEGO ZESPOŁU IT
#
Pytanie
Odpowiedź
Priorytet
1
Czy któraś z naszych stron lub aplikacji zawiera bibliotekę PHPMailer?
TAK / NIE
🔴
2
Jaka jest wersja PHPMailer na każdej stronie?
[wersja]
🔴
3
Na jakiej wersji WordPressa lub Joomli działają nasze strony?
[wersja]
🔴
4
Czy formularze wysyłają e-mail przez funkcję mail() PHP, czy przez SMTP?
[mail() / SMTP]
🟠
5
Czy adres nadawcy w formularzach jest stały, czy wpisywany przez użytkownika?
[stały / od użytkownika]
🟠
6
Kiedy ostatnio sprawdzono serwer strony pod kątem nieznanych plików i zawieszeń?
[data]
🟠
7
Kto i na jakiej podstawie umownej odpowiada za aktualizacje naszych stron?
[firma / osoba]
🟡
Pytania diagnostyczne dla managera
✓ Czy wiem, kto wykonał naszą stronę i czy nadal się nią opiekuje?
✓ Czy ktoś potrafi podać listę składników strony i datę ich ostatniej aktualizacji?
✓ Czy niewyjaśnione zawieszenia strony były kiedykolwiek analizowane jako możliwy atak?
✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?
✓ Czy w budżecie jest stała pozycja na utrzymanie strony, a nie tylko na jej budowę?
Podsumowanie
CVE-2016-10033 w bibliotece PHPMailer pozwala każdemu w internecie wykonać kod na serwerze strony przez zwykły formularz kontaktowy, jeśli strona używa starej wersji i funkcji mail() z adresem nadawcy od użytkownika. CISA potwierdza ataki, gotowe narzędzia są publiczne od lat, a termin CISA minął 28 lipca 2025 roku, więc sprawdzenie wersji (co najmniej 5.2.20) to zadanie na dziś.
Czytaj dalej
Powiązane artykuły
Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.
Przepełnienie bufora w FortiOS i FortiSwitchManager pozwala bez hasła uruchomić kod na zaporze. CISA potwierdza ataki, a przestępcy instalują trojana PivotC2. Zaktualizuj FortiOS i sprawdź zapory pod kątem włamania.
Luka o ocenie 10.0 w konsoli Cisco Secure Firewall Management Center pozwala ominąć logowanie i przejąć urządzenie. Cisco i CISA potwierdzają ataki. Zaktualizuj FMC i sprawdź ślady włamania.
Luka w systemach PLM firmy PTC pozwala bez logowania przejąć serwer. Grupa Cl0p wykorzystuje ją do kradzieży dokumentacji produktów i szantażu. Zainstaluj poprawki i sprawdź ślady włamania.
Klikając „Akceptuję”, zgadzasz się na przechowywanie plików cookie przez UXU w celu poprawy działania strony, analizy i wsparcia działań marketingowych.