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 Profile Builder (wtyczki WordPressa wymienionej na WordPress.org jako „Profile Builder” / „User Profile Builder”, autorstwa Cozmoslabs, znajdującej się w Państwa plikach w katalogu /wp-content/plugins/profile-builder/), która mieści się w zakresie objętym znanym problemem bezpieczeństwa. Ta strona wyjaśnia, na czym polega problem, jak ustalić, czy w ogóle dotyczy on Państwa witryny, jak odczytać swoją wersję, nie dając się wprowadzić w błąd, oraz jak dokonać aktualizacji.

Uwaga: to nie jest ProfilePress. Istnieje inna wtyczka WordPressa o podobnej nazwie (ProfilePress, katalog wp-user-avatar), o której piszę osobno. Jeśli katalog Państwa wtyczki to wp-user-avatar, a nie profile-builder, ta strona nie jest tą, której Państwo szukają; proszę zamiast tego zobaczyć powiadomienie o ProfilePress. Wszystko poniżej dotyczy wyłącznie Profile Buildera od Cozmoslabs.

Zanim przejdę dalej, najważniejszy fakt dotyczący tego powiadomienia: sama wersja z zakresu objętego problemem nie oznacza, że Państwa witryna jest narażona. Poniższy problem ma znaczenie tylko na witrynach, które włączyły jedno konkretne ustawienie, a ja nie widzę Państwa ustawień z zewnątrz:

  • Ustawienie wtyczki Profile Builder „Automatically Log In”, które od razu po zakończeniu rejestracji loguje nowego użytkownika, musi być włączone.
  • To ustawienie jest domyślnie wyłączone. Witryna, która nigdy go nie włączyła, nie jest narażona na ten problem, nawet przy wersji objętej problemem.

Mogę odczytać wersję Państwa wtyczki z publicznego pliku, ale nie mogę odczytać Państwa konfiguracji, więc to powiadomienie jest zapobiegawczym ostrzeżeniem, a nie potwierdzonym ustaleniem dotyczącym Państwa witryny.

Problem to CVE-2026-15368, nieuwierzytelnione przejęcie konta w kroku automatycznego logowania wtyczki. Dotyczy wersji od 2.1.4 do 3.16.3 i został naprawiony w wersji 3.16.4. Jeśli korzystają Państwo z wersji objętej problemem, proszę zaktualizować Profile Builder do wersji 3.16.4 lub nowszej. Ocena CVSS wynosi 8.1. Nie wiem o istnieniu żadnego publicznie dostępnego kodu wykorzystującego tę lukę.

Słowo o pilności, ponieważ to powiadomienie jest warunkowe. Jeśli nie korzystają Państwo z automatycznego logowania po rejestracji, aktualizacja jest zwykłą konserwacją wtyczki. Jeśli Państwo z niego korzystają, proszę potraktować aktualizację jako priorytet: w takiej konfiguracji luka mogła pozwolić odwiedzającemu bez żadnego konta na uzyskanie zalogowanej sesji należącej do istniejącego użytkownika, którego adres e-mail zna, w tym administratora, co oznaczałoby przejęcie kontroli nad witryną.

Jest to luka we wtyczce, a nie w rdzeniu WordPressa. W pełni zaktualizowany WordPress nie chroni Państwa, jeśli sama wtyczka Profile Builder 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ć, zarejestrować na niej 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 Państwa formularza rejestracji, nie utworzyłem konta i nie zbliżyłem się do kroku automatycznego logowania. Żadna część tego sprawdzenia 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

Profile Builder dodaje do witryny WordPress frontendowe formularze rejestracji, logowania i edycji profilu, dzięki czemu odwiedzający mogą się zarejestrować i zarządzać własnymi kontami, nigdy nie widząc panelu administracyjnego. Jedną z jej udogodnień jest opcja automatycznego zalogowania nowego użytkownika w chwili zakończenia rejestracji, dzięki czemu nie musi on ponownie wpisywać hasła na osobnym formularzu logowania.

W wersjach objętych problemem to udogodnienie w niewłaściwy sposób decydowało, które konto zalogować. Zamiast użyć konta, które właśnie utworzyło, wtyczka wyszukiwała konto na podstawie adresu e-mail wpisanego w formularzu rejestracji i logowała właśnie to konto. Jeśli podany adres należał do kogoś, kto już miał konto na tej witrynie, osoba wypełniająca formularz otrzymywała zalogowaną sesję tego istniejącego konta.

Z tego wynikają dwie rzeczy, które ciągną w przeciwnych kierunkach. Pierwsza jest taka, że dzieje się to wyłącznie tam, gdzie automatyczne logowanie jest włączone. Przy wyłączonym ustawieniu wtyczka nigdy nawet nie uruchamia kroku automatycznego logowania, więc witryna w takim stanie nie jest osiągalna przez ten problem. Druga jest taka, że tam, gdzie ustawienie jest włączone, nic nie ogranicza skutków do zwykłych użytkowników: przekazywane konto to dowolne konto pasujące do podanego adresu, a adres e-mail administratora zwykle nie jest tajemnicą. Nie jest wymagane żadne konto, żadne hasło ani żadna współpraca ze strony ofiary.

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 Państwa ustawienia i numeru 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ę mieści się w zakresie objętym problemem. Nie sprawdzałem, czy akurat Państwa witrynę da się wykorzystać, i nie widzę, jak skonfigurowane są Państwa ustawienia. Zaobserwowałem wyłącznie wersję.

Czy mnie to dotyczy?

O tym decydują dwa pytania, w tej kolejności.

Po pierwsze: czy ustawienie „Automatically Log In” jest włączone?

To jest pytanie decydujące, i tylko Państwo mogą na nie odpowiedzieć. Sprawdzenie własnych ustawień jest całkowicie bezpieczne i to właśnie jest sens tej strony.

  1. Proszę zalogować się do panelu administracyjnego WordPressa (zwykle pod adresem yourdomain.com/wp-admin).
  2. Proszę otworzyć w menu bocznym pozycję Profile Builder, a następnie przejść do Ustawienia.
  3. Proszę poszukać przełącznika oznaczonego Automatically Log In, opisanego jako „Enable to automatically log in new users after successful registration” (Włącz, aby automatycznie logować nowych użytkowników po pomyślnej rejestracji).
  • Jeśli ten przełącznik jest wyłączony, ten problem nie dotyka Państwa witryny, nawet przy wersji objętej problemem. Aktualizacja nadal jest warta wykonania jako zwykła konserwacja.
  • Jeśli jest włączony, problem Państwa dotyczy i powinni Państwo zaktualizować wtyczkę niezwłocznie.

Jeśli mają Państwo więcej niż jedną stronę rejestracji, warto sprawdzić jeszcze jedno miejsce: pojedyncza strona zawierająca formularz rejestracji Profile Buildera może mieć własną kopię tego ustawienia, która nadpisuje ustawienie globalne. Jeśli prowadzą Państwo kilka stron rejestracji, warto sprawdzić każdą z nich, a nie polegać wyłącznie na globalnym przełączniku.

Proszę nie próbować odtwarzać tego problemu na własnej ani cudzej witrynie; nie jest to potrzebne, by odpowiedzieć na powyższe pytanie.

Po drugie: której wersji Państwo używają?

Nie muszą Państwo wierzyć mi na słowo. W przypadku tej wtyczki istnieje jeden konkretny sposób sprawdzenia, który może Państwa wprowadzić w błąd, więc warto przeczytać tę część uważnie.

W panelu administracyjnym WordPressa (źródło rozstrzygające):

  1. W panelu administracyjnym WordPressa proszę przejść do Wtyczki, a następnie Zainstalowane wtyczki.
  2. Proszę odnaleźć Profile Builder, pozycję, której katalog to profile-builder, i odczytać wersję widoczną pod jej nazwą.

Z publicznego manifestu (bez logowania): proszę otworzyć w przeglądarce yourdomain.com/wp-content/plugins/profile-builder/readme.txt. Linia Stable tag: blisko początku pliku to wersja zgłaszana przez Państwa instalację, i jest to jedno z dwóch publicznych źródeł, które odczytuję.

Ze źródła strony (bez logowania): proszę wyświetlić źródło strony na Państwa witrynie, która pokazuje formularz Profile Buildera, i odszukać arkusz stylów front-endowy wtyczki pod dokładnie tą ścieżką:

/wp-content/plugins/profile-builder/assets/css/style-front-end.css?ver=...

Numer ?ver= dołączony do tego jednego pliku to własna wersja wtyczki. W przypadku tej wtyczki numer ten dokładnie śledzi wydanie, dlatego traktuję go jako wiarygodne drugie źródło.

Pułapka, której należy tu unikać, i łatwo w nią wpaść. Profile Builder dołącza inne komponenty wewnątrz własnego katalogu wtyczki, a te mają swoje własne, niezwiązane numery wersji. Dołączony bezpłatny dodatek user-profile-picture pod add-ons-free/user-profile-picture/ utrzymuje się przy numerze 2.6.0 przez kilka wydań Profile Buildera bez zmian, a pod assets/misc/divi/ znajduje się dołączona integracja z Divi oznaczona numerem 1.0.0. Oba te numery wyglądają niepokojąco staro w porównaniu z 3.16.4, a żaden z nich nic nie mówi o tym problemie. Jeśli odczytują Państwo wersję ze źródła strony, proszę upewnić się, że ścieżka pliku, z której ją odczytują, to assets/css/style-front-end.css i nic innego.

Następnie proszę zastosować tę regułę, pamiętając, że wersje porównuje się numerycznie, a nie alfabetycznie, więc 3.10.0 jest nowsza niż 3.9.9, mimo że jako tekst wygląda na mniejszą. Ta wtyczka rzeczywiście przechodzi przez każdą linię wydań od .0 do .9, zanim przejdzie do kolejnej, więc to rozróżnienie ma tu znaczenie:

  • Od 2.1.4 do 3.16.3: potencjalnie objęte problemem, zależnie od pytania o ustawienie powyżej. Proszę zaktualizować teraz.
  • 3.16.4 lub nowsza: już naprawiona, jeśli chodzi o ten problem. Bieżące wydanie w momencie pisania tego tekstu to 3.16.6, i najlepszym rozwiązaniem jest wybranie najnowszej dostępnej wersji.
  • Starsza niż 2.1.4: nieobjęta tym problemem. Opisany powyżej konkretny błąd został wprowadzony w wersji 2.1.4, więc naprawdę starsze instalacje znajdują się poza tym zakresem. Mimo to wydanie tak stare jest o wiele lat w tyle pod każdym innym względem, więc aktualizacja warta jest wykonania z ogólnych powodów.

Jeśli żaden z trzech powyższych sposobów sprawdzenia nie daje czytelnej wersji, jest to typowe dla tej wtyczki i nie oznacza niczego niepokojącego: arkusz stylów ładuje się tylko na stronach, które faktycznie renderują jeden z jej formularzy, a wtyczki buforujące lub optymalizujące rutynowo usuwają wartość ?ver=. Ekran administracyjny z pierwszego kroku zawsze da odpowiedź.

Jak zaktualizować

Najbezpieczniejsza droga to aktualizacja przez sam WordPress, po uprzednim wykonaniu kopii zapasowej:

  1. 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.
  2. W panelu administracyjnym WordPressa proszę przejść do Kokpit, a następnie Aktualizacje, albo do Wtyczki, a następnie Zainstalowane wtyczki. Jeśli na liście pojawi się aktualizacja Profile Buildera, proszę zainstalować ją stąd.
  3. Jeśli wolą Państwo wiersz poleceń, WP-CLI robi to samo: wp plugin update profile-builder (polecenie używa nazwy katalogu).
  4. Jeśli nie pojawia się żadna aktualizacja, mogą Państwo pobrać najnowszą wersję bezpośrednio ze strony wtyczki w katalogu WordPress.org, Profile Builder, i zaktualizować przez Wtyczki, następnie Dodaj wtyczkę i Wyślij wtyczkę na serwer.
  5. Po aktualizacji proszę potwierdzić nowy numer wersji (3.16.4 lub nowszy), korzystając z powyższych kroków, i sprawdzić, czy Państwa formularze rejestracji, logowania i edycji profilu nadal działają prawidłowo.

Jeśli korzystają Państwo z jakichkolwiek płatnych dodatków Profile Buildera od Cozmoslabs, proszę zaktualizować je razem z wtyczką podstawową, ponieważ ich wydania są zwykle powiązane.

Przy tej okazji warto upewnić się, że rdzeń WordPressa oraz pozostałe Państwa wtyczki są aktualne, ponieważ ta sama zasada dotyczy ich wszystkich.

Po aktualizacji

Aktualizacja do wersji 3.16.4 lub nowszej zamyka ten problem i dla większości witryn to cały zakres zadania. Ta strona jest powiadomieniem zapobiegawczym, a nie raportem incydentu: nie mam wglądu w to, czy na Państwa witrynie coś się wydarzyło, i tego nie sprawdzałem.

Jedną rzecz warto rozważyć jako uzupełnienie, i jest ona warunkowa, zależna od tego samego pytania o ustawienie. Jeśli Państwa witryna miała włączone Automatically Log In, działając na wersji objętej problemem, to przynajmniej teoretycznie było możliwe, że ktoś otrzymał sesję na istniejącym koncie. Aktualizacja zamyka lukę, ale nie cofa dostępu, który już został przejęty, więc w takim przypadku rozsądnych jest kilka rutynowych środków ostrożności:

  • Proszę przejrzeć konta administratorów oraz wszelkie inne istotne konta pod kątem wpisów, których Państwo nie rozpoznają, adresów e-mail, które nie należą już do właściwej osoby, lub zmian ról, których Państwo nie wprowadzili.
  • Proszę przejrzeć ostatnie logowania i wszelkie aktualnie aktywne sesje pod kątem czegokolwiek, czego nie potrafią Państwo wyjaśnić.
  • Proszę zresetować hasła na kontach administratorów. Rozsądnym krokiem uzupełniającym jest ponowne wygenerowanie kluczy i „soli” WordPressa w pliku wp-config.php (nowe wartości są o jedno kliknięcie w oficjalnym generatorze kluczy, a ich podmiana jednorazowo wylogowuje wszystkich użytkowników).

Jeśli znajdą Państwo coś, co Państwa niepokoi, właściwą reakcją jest potraktowanie tego tak samo, jak każdego innego podejrzenia nieuprawnionego dostępu. Jeśli Państwa witryna nigdy nie miała włączonego automatycznego logowania, sama aktualizacja wystarczy.

Co zrobiłem, a czego nie

Dla pełnej przejrzystości co do sprawdzenia stojącego za moim e-mailem: odczytałem wyłącznie pliki, które Państwa witryna i tak udostępnia każdemu odwiedzającemu, konkretnie publiczny plik readme.txt wtyczki, Państwa stronę główną oraz adresy zasobów zapisane na tej stronie. 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 Państwa formularza rejestracji, nigdy nie utworzyłem konta i nigdy nie dotknąłem kroku automatycznego logowania. Nic nie zostało wysłane, przetestowane ani wykorzystane. Ma to tu większe znaczenie niż na większości tych stron, ponieważ rejestracja jest dokładnie tą czynnością, której 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ę z zakresu objętego problemem. Nie jest to stwierdzenie, że Państwa witryna była podatna na atak w chwili, gdy ją sprawdzałem. Ponieważ problem zależy od ustawienia, którego nie widzę, witryna z tego zakresu może wcale nie być narażona, a witryna z tego zakresu może być osobno chroniona innymi środkami, takimi jak zapora aplikacji webowych (WAF) lub poprawka wprowadzona wstecznie.

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

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