Biuletyn bezpieczeństwa Creative Mail
Jeśli otrzymali Państwo ode mnie e-mail kierujący na tę stronę, to dlatego, że Państwa witryna
wydaje się uruchamiać wersję wtyczki Creative Mail by Constant Contact (wtyczki WordPressa
do e-mail marketingu dla WooCommerce, znajdującej się w Państwa plikach w katalogu
/wp-content/plugins/creative-mail-by-constant-contact/), która mieści się w zakresie objętym
znanym problemem bezpieczeństwa. Ta strona wyjaśnia, na czym polega problem, które wersje są
nim objęte, dlaczego nie ma aktualizacji do zainstalowania, oraz jak bezpiecznie usunąć lub
zastąpić wtyczkę.
Problem to CVE-2026-3985, nieuwierzytelniona luka typu SQL injection, osiągalna poprzez obsługę porzuconych koszyków WooCommerce we wtyczce. Dotyczy wersji 1.6.5 i każdego kolejnego wydania, aż do ostatniego opublikowanego przez producenta włącznie, czyli 1.6.9.
Najważniejszy praktyczny fakt na tej stronie: nie istnieje poprawiona wersja, do której można zaktualizować. Wtyczka została usunięta z katalogu WordPress.org 14 maja 2026 roku i nigdy nie doczekała się poprawki. Ostatnie wydanie, 1.6.9, nadal zawiera ten problem, a żadne nowsze nie powstanie. Nie jest to zatem zwykłe powiadomienie typu „kliknij, aby zaktualizować”. Rozwiązaniem jest dezaktywacja i usunięcie wtyczki, a jeśli z niej Państwo korzystają, zastąpienie jej utrzymywaną alternatywą. Reszta tej strony prowadzi krok po kroku przez sprawdzenie własnej wersji i bezpieczne wykonanie tych czynności.
Jest tu jeden powód do uspokojenia, i to prawdziwy. W odróżnieniu od niektórych problemów, o których piszę, ta luka ma rzeczywistą dolną granicę: została wprowadzona w wersji 1.6.5. Wersje 1.6.4 i wcześniejsze nie są nią objęte: podatny kod po prostu w nich nie występuje. Jeśli Państwa instalacja to 1.6.4 lub starsza, ten konkretny problem Państwa nie dotyczy. (Niemniej wtyczka nie jest już przez nikogo utrzymywana, co samo w sobie jest powodem, by prędzej czy później zaplanować odejście od niej.)
Jest to luka we wtyczce, a nie w rdzeniu WordPressa. W pełni zaktualizowany WordPress nie chroni Państwa, jeśli sama wtyczka Creative Mail jest w wersji objętej problemem.
Czy ta wiadomość jest wiarygodna?
Tak. Jest to powiadomienie o odpowiedzialnym ujawnieniu luki, wystosowane w dobrej wierze przez niezależnego badacza bezpieczeństwa. Nie proszę o pieniądze, hasła ani dostęp do Państwa witryny, i nie próbowałem się do niej włamać, niczego do niej przesłać ani niczego wykorzystać.
Jedynie sprawdziłem publicznie widoczne pliki, które Państwa witryna udostępnia każdemu odwiedzającemu (w ten sam sposób, w jaki Państwa strona główna jest publiczna), i odnotowałem numer wersji publikowany przez wtyczkę. Celowo nie przesłałem niczego do obsługi zamówienia ani zgody wtyczki, ani na Państwa witrynie, ani na żadnej innej, a nic w tym sprawdzeniu nie dotyka Państwa danych, panelu administracyjnego ani żadnej prywatnej części Państwa witryny (więcej szczegółów w sekcji Co zrobiłem, a czego nie poniżej).
Jeśli chcą Państwo zweryfikować, kim jestem, dane kontaktowe znajdują się na dole tej strony oraz na stronie O mnie.
Dlaczego to ważne
Creative Mail łączy sklep WooCommerce z Constant Contact na potrzeby e-mail marketingu, a jednym z jego zadań jest zapamiętywanie koszyków zakupowych, które zostały rozpoczęte, ale nie dokończone, tak aby sklep mógł się w tej sprawie odezwać. To właśnie w obsłudze porzuconych koszyków tkwi ten problem.
W wersjach objętych problemem, gdy wtyczka zapisuje informacje o zamówieniu, jedno z jej zapytań do bazy danych buduje swoją treść, wklejając wartość pochodzącą od odwiedzającego, bez użycia przygotowanego zapytania (prepared statement). Wartość ta nie jest odpowiednio zabezpieczona (escapowana) pod kątem użycia w SQL. Konsekwencją jest to, że odwiedzający, który nie jest zalogowany, może zmienić to zapytanie i odczytać dane z bazy danych Państwa witryny.
Warto być precyzyjnym co do tego, czym ten problem jest, a czym nie jest. Pozwala on napastnikowi odczytać dane z bazy danych. To samo w sobie jest poważne, ponieważ baza danych WordPressa przechowuje takie rzeczy jak adresy e-mail użytkowników i zahaszowane hasła, a w sklepie może zawierać dane klientów. Nie jest to jednak samo w sobie zdalne wykonanie kodu, przejęcie witryny ani sposób, by napastnik przyznał sobie konto administratora. Jest to węższy problem niż pełne przejęcia kontroli, o których piszę przy innych okazjach, a wolę uczciwie określić skalę zagrożenia, niż pozostawić Państwa z wrażeniem groźniejszym, niż wynika to z faktów.
Opisuję to na poziomie, jakiego potrzebuje właściciel witryny, by podjąć działanie, i nie dalej. Nie publikuję szczegółów, które pozwoliłyby komuś to odtworzyć, i prosiłbym, aby nie próbowali Państwo tego robić na własnej witrynie ani na witrynie kogokolwiek innego. Sprawdzenie numeru Państwa wersji, jak opisano poniżej, mówi Państwu wszystko, co potrzebne, by zdecydować, co robić.
Jeśli mój e-mail powołał się na ten problem, oznacza to, że wersja zgłaszana przez Państwa witrynę to 1.6.5 lub nowsza. Nie sprawdzałem, czy akurat Państwa witrynę da się wykorzystać; zaobserwowałem wyłącznie wersję.
Czy mnie to dotyczy?
Sprowadza się to do jednego pytania: jakiej wersji Creative Mail Państwo używają?
W panelu administracyjnym WordPressa (źródło rozstrzygające):
- Proszę zalogować się do panelu administracyjnego WordPressa (zwykle pod adresem
yourdomain.com/wp-admin). - Przejść do Wtyczki, a następnie Zainstalowane wtyczki.
- Odnaleźć Creative Mail by Constant Contact, pozycję, której katalog to
creative-mail-by-constant-contact, i odczytać wersję widoczną pod jej nazwą.
Z publicznego manifestu (bez logowania): proszę otworzyć w przeglądarce adres
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txt. Linia
Stable tag: blisko początku pliku to wersja zgłaszana przez Państwa instalację, i jest to
ten sam plik publiczny, który ja odczytałem. W przypadku tej wtyczki potwierdziłem, że dokładnie
odpowiada ona faktycznie opublikowanemu kodowi, więc jest to wiarygodne sprawdzenie.
Jedno sprawdzenie, które w przypadku tej wtyczki nie działa, więc prosimy na nim nie
polegać. Jeśli są Państwo przyzwyczajeni do odczytywania wersji wtyczki z numeru ?ver=
dołączonego do skryptu lub arkusza stylów w źródle strony, to w tym przypadku wprowadzi to
Państwa w błąd. W tej wtyczce te numery to znaczniki czasu pliku (długie wartości takie jak
?ver=1723603844), a nie wersja wtyczki, więc porównywanie ich z 1.6.5 nie ma sensu. Proszę
korzystać z ekranu administracyjnego lub pliku readme.txt.
Następnie proszę zastosować tę regułę:
- 1.6.5 lub nowsza (do 1.6.9, ostatniego wydania, włącznie): objęta problemem. Ponieważ nie ma poprawki, krokiem do wykonania jest usunięcie lub zastąpienie wtyczki (patrz poniżej).
- 1.6.4 lub wcześniejsza: nieobjęta tym problemem. Luka została wprowadzona w wersji 1.6.5, więc starsze instalacje jej nie zawierają. (Wtyczka i tak nie jest już utrzymywana, więc nadal warto zaplanować odejście od niej.)
Co zrobić: usunąć lub zastąpić
Ponieważ wtyczka została wycofana bez poprawki, nie ma aktualizacji do zainstalowania: panel WordPressa żadnej nie zaproponuje, a wersja, którą Państwo mają, jest ostatnią, jaka kiedykolwiek powstanie. Sposobem na zamknięcie tego problemu jest zaprzestanie korzystania z wtyczki. Najpierw proszę wykonać kopię zapasową, a następnie ją usunąć:
- Proszę wykonać kopię zapasową swojej witryny (plików i bazy danych) przed wprowadzeniem jakichkolwiek zmian. Większość dostawców hostingu oferuje kopie zapasowe jednym kliknięciem, można też skorzystać z wtyczki do kopii zapasowych WordPressa.
- W panelu administracyjnym WordPressa proszę przejść do Wtyczki, a następnie Zainstalowane wtyczki, odnaleźć Creative Mail by Constant Contact i kliknąć Dezaktywuj. Dezaktywacja zatrzymuje działanie podatnego kodu.
- Po dezaktywacji proszę kliknąć Usuń, aby usunąć pliki wtyczki. Jeśli wolą Państwo wiersz
poleceń, WP-CLI robi to samo:
wp plugin deactivate creative-mail-by-constant-contacta następniewp plugin delete creative-mail-by-constant-contact. - Proszę potwierdzić, że wtyczka zniknęła: jej pozycja nie powinna już pojawiać się na ekranie
Wtyczki, a adres
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txtnie powinien już się ładować.
Jeśli korzystali Państwo z Creative Mail do e-mail marketingu swojego sklepu, będą Państwo potrzebować zamiennika, aby nie utracić tej funkcjonalności. W oficjalnym katalogu istnieje kilka utrzymywanych wtyczek do e-mail marketingu i newsletterów dla WooCommerce; proszę wybrać taką, która jest obecnie wspierana i otrzymuje aktualizacje. Sama usługa Constant Contact nie jest tym dotknięta: problem tkwi w wycofanej wtyczce WordPressa, a nie w usłudze e-mail, więc jeśli korzystają Państwo bezpośrednio z Constant Contact, celem jest aktualna, wspierana integracja.
Przy tej okazji warto upewnić się, że rdzeń WordPressa oraz pozostałe Państwa wtyczki są aktualne, i usunąć wszelkie inne wtyczki, z których Państwo już nie korzystają.
Po usunięciu
Usunięcie wtyczki zatrzymuje możliwość odczytania czegokolwiek z Państwa bazy danych za pośrednictwem tego problemu w przyszłości. Nie może jednak cofnąć odczytania niczego, co mogło już zostać odczytane w czasie, gdy wtyczka była aktywna w wersji objętej problemem. Nie mam wglądu w to, czy tak się stało na Państwa witrynie, i tego nie sprawdzałem; większość witryn z zakresu objętego problemem prawdopodobnie nigdy nie została naruszona. Ponieważ jednak nie mogę tego stwierdzić z całą pewnością, rozsądna jest pewna doza ostrożności, proporcjonalna do tego, co przechowuje Państwa baza danych:
- Na stronie sklepu rozsądnymi krokami są zmiana haseł przez administratorów, oraz świadomość, że dane kontaktowe klientów w Państwa bazie danych mogły zostać ujawnione. WordPress i WooCommerce przechowują hasła w postaci zahaszowanej, nie jawnym tekstem, ale hashe słabych haseł można złamać offline, więc świeże hasła usuwają tę obawę.
- Jeśli jakiekolwiek wtyczki na Państwa witrynie przechowują własne dane uwierzytelniające lub klucze API, warto rozważyć również ich zmianę.
- Ponowne wygenerowanie kluczy i „soli” WordPressa w pliku
wp-config.php(nowe wartości są o jedno kliknięcie w oficjalnym generatorze kluczy) jednorazowo wylogowuje wszystkich użytkowników i unieważnia wszelkie skradzione tokeny sesji.
Aby jasno określić kontekst: jest to środek ostrożności, a nie stwierdzenie, że Państwa dane zostały wykradzione. To powiadomienie opiera się na numerze wersji, a nie na jakimkolwiek dowodzie ataku.
Co zrobiłem, a czego nie
Dla pełnej przejrzystości co do sprawdzenia stojącego za moim e-mailem: odczytałem wyłącznie
publiczne pliki, które Państwa witryna i tak udostępnia każdemu odwiedzającemu, konkretnie
publiczny plik readme.txt wtyczki oraz Państwa stronę główną. Nie uzyskałem dostępu do
panelu administracyjnego WordPressa, do Państwa bazy danych ani do żadnej prywatnej części
witryny.
W szczególności nigdy nie przesłałem niczego do obsługi zamówienia ani zgody wtyczki, ani na Państwa witrynie, ani na żadnej innej. Nic nie zostało wysłane, zapisane, przetestowane ani wykorzystane. Ma to tu większe znaczenie niż na większości tych stron, ponieważ ta obsługa jest dokładnie tym, czego dotyczy ten problem, więc „nie dotknąłem jej” jest całą różnicą między ujawnieniem a włamaniem.
Celowo nie publikuję również szczegółów, które pomogłyby komuś wykorzystać ten problem. Powyższy opis zatrzymuje się na poziomie potrzebnym właścicielowi witryny, i nie podaję odnośników do żadnego kodu proof-of-concept.
To jest obserwacja oparta na wersji: Państwa witryna zgłasza wersję 1.6.5 lub nowszą. Witryna z tego zakresu może być już chroniona innymi środkami, takimi jak zapora aplikacji webowych (WAF). To powiadomienie nie jest stwierdzeniem, że Państwa witryna była podatna na atak w chwili, gdy ją sprawdzałem.
Nie mam webmastera / utknąłem
Jeśli nie zajmują się Państwo witryną osobiście, proszę przekazać tę stronę osobie, która to robi (deweloperowi, agencji lub firmie hostingowej). Powyższe kroki rozpozna od razu.
Jeśli utrzymują Państwo witrynę samodzielnie i utkną, chętnie bezpłatnie wskażę właściwy kierunek. Proszę napisać, korzystając z danych kontaktowych poniżej.
Kontakt
Evan Harris, badacz bezpieczeństwa
- E-mail: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Kontaktuję się w takich sprawach wyłącznie po to, by pomóc operatorom zabezpieczyć ich witryny. Jeśli wolą Państwo nie otrzymywać kolejnych wiadomości, proszę dać znać; uszanuję to.
Źródła
Oficjalne komunikaty i śledzenie
Producent / wtyczka
- Creative Mail by Constant Contact w katalogu wtyczek WordPress.org (obecnie wtyczka oznaczona jako zamknięta)