Pomoc zdalna
alerty bezpieczeństwa

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.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 10 min czytania
Dwie osoby przekazują sobie nad biurkiem z laptopem kartkę z pustym formularzem

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

Ilustracja ochrony systemów informatycznych: tarcza z kłódką i lupaź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

Straty wizerunkowe i obowiązki z RODO

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Konkretne scenariusze zagrożenia

  • 🔴 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.

Macierz ryzyka dla strony z PHPMailer starszym niż 5.2.20 i formularzem przyjmującym adres nadawcy Wpływ 5 | . . . . . 4 | . . . . ■ ← KRYTYCZNE 3 | . . . . . 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

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)

Luka zamknięta i udokumentowana

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA)

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

9.8 KRYTYCZNA (CVSS 3.1, NVD); 7.5 WYSOKA (CVSS 2.0, NVD)

PoC dostępny publicznie?

TAK: NVD wskazuje dziewięć wpisów w Exploit-DB, moduł Metasploit oraz publikacje w Packet Storm

Liczba atakowanych firm

Brak publicznych informacji

Kto wykrył błąd

Dawid Golunski (Legal Hackers), który zgłosił także obejście CVE-2016-10045

Prognoza EPSS

Około 99,7% szansy próby wykorzystania w ciągu 30 dni, w najwyższych 0,05% wszystkich podatności (wg analizy źródłowej)

Wszystkie sygnały wskazują w tę samą stronę: to stara, dobrze znana luka z gotowymi narzędziami, więc zagrożone są przede wszystkim zaniedbane strony:

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Sygnały zagrożenia dla CVE-2016-10033 CVSS 3.1 (NVD) 9.8/10 ████████████████████ KRYTYCZNA CVSS 2.0 (NVD) 7.5/10 ███████████████░░░░░ WYSOKA EPSS (próba w 30 dni) ~99.7% ████████████████████ BARDZO WYSOKA Gotowe exploity TAK ████████████████████ Exploit-DB, Metasploit CISA KEV TAK ████████████████████ ataki potwierdzone

Linia czasu incydentu

2016-12 Dawid Golunski ujawnia lukę, PHPMailer wydaje wersję 5.2.18 2016-12 Ujawnienie obejścia CVE-2016-10045, poprawka w PHPMailer 5.2.20 2016-12-30 Publikacja CVE-2016-10033 i CVE-2016-10045 w NVD 2017-01 Debian udostępnia poprawione pakiety (przełom 2016 i 2017) 2023-03-15 Canonical publikuje poprawki PHPMailer dla Ubuntu 16.04 do 22.04 2025-07-07 CISA dodaje CVE-2016-10033 do katalogu KEV 2025-07-28 Termin naprawy wg CISA dla agencji federalnych 2026-05-18 Wydanie PHPMailer 7.1.1 (najnowsze w chwili pisania) ... prawie 14 miesięcy od terminu CISA 2026-09-17: TUTAJ JESTEŚMY

7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO

Wydanie z poprawką: github.com/PHPMailer/PHPMailer/releases/tag/v5.2.18 . Komunikat bezpieczeństwa: github.com/advisories/GHSA-5f37-gxvh-23v6 . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2016-10033 . Pamiętaj, że wersja 5.2.18 zamyka tylko pierwszą lukę; celem jest 5.2.20 lub nowsza.

Lp.

Zadanie

Kto

Deadline

1

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.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.