Biuletyn bezpieczeństwa Blog Floating Button
Jeśli otrzymali Państwo ode mnie wiadomość kierującą na tę stronę, to dlatego, że Państwa
witryna najprawdopodobniej korzysta z wersji wtyczki Blog Floating Button (wtyczki
WordPressa autorstwa sunhaengsa / kuma-chan, która znajduje się w Państwa plikach w katalogu
/wp-content/plugins/blog-floating-button/), która mieści się w zakresie objętym znanym
problemem bezpieczeństwa. Ta strona wyjaśnia, na czym polega ten problem, jak sprawdzić, którą
wersję Państwo mają, jak ją zaktualizować i co zrobić później.
Problem to CVE-2026-15383, nieuwierzytelnione trwałe wstrzyknięcie kodu (stored cross-site scripting) w funkcji śledzenia kliknięć i raportowania. Dotyczy każdego wydania przed 1.4.21 i został naprawiony w 1.4.21, opublikowanej 31 lipca 2026 r. Jeśli korzystają Państwo z czegokolwiek starszego niż 1.4.21, proszę zaktualizować Blog Floating Button do wersji 1.4.21 lub nowszej.
Jedna rzecz wymaga jasnego postawienia, bo różni się od niektórych innych powiadomień, które wysyłałem: nie ma starszej wersji, która byłaby bezpieczna. To nie jest luka, która pojawiła się w pewnym momencie historii wtyczki, a potem została naprawiona. Brakującego zabezpieczenia nie było w żadnym wydaniu, jakie wtyczka kiedykolwiek opublikowała, aż po 1.4.20 włącznie, więc „moja instalacja jest za stara, żeby jej to dotyczyło” nie jest tutaj drogą wyjścia. Jedyne wersje, których problem nie dotyczy, to 1.4.21 i nowsze.
To powiadomienie nie zależy też od tego, jak skonfigurowana jest Państwa witryna. Nie ma żadnego ustawienia, które musiałoby być włączone, aby objęty problemem kod był obecny.
To luka we wtyczce, a nie w rdzeniu WordPressa. W pełni zaktualizowany WordPress nie chroni Państwa, jeśli sama wtyczka Blog Floating Button jest w wersji objętej problemem.
Czy ta wiadomość jest wiarygodna?
Tak. To zgłoszenie w duchu odpowiedzialnego ujawniania, w dobrej wierze, od niezależnego badacza bezpieczeństwa. Nie proszę o pieniądze, hasła ani dostęp do witryny i nie próbowałem się do niej włamać, niczego do niej wysłać ani niczego wykorzystać.
Obejrzałem wyłącznie publicznie widoczne pliki, które Państwa witryna udostępnia każdemu odwiedzającemu (tak samo jak publiczna jest strona główna), i odnotowałem numer wersji publikowany przez wtyczkę. Celowo nie wysłałem niczego do funkcji śledzenia wtyczki, a to sprawdzenie w żaden sposób nie dotyka Państwa danych, panelu administracyjnego ani jakiejkolwiek prywatnej części witryny (więcej 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
Blog Floating Button dodaje do Państwa wpisów i stron pływający przycisk oraz prowadzi własny zapis kliknięć i odwiedzin, aby można je było później przejrzeć w raporcie analitycznym wewnątrz panelu administracyjnego WordPressa. Obie połowy tej funkcji mają tu znaczenie.
W wersjach objętych problemem wtyczka przyjmuje dane śledzenia od każdego, bez wymogu zalogowania, i zapisuje część tego, co odwiedzająca przeglądarka podała o sobie, we własnej tabeli bazy danych dokładnie w otrzymanej postaci, bez oczyszczenia. Później, gdy ekran raportu wyświetla te zapisane wiersze, wpisuje je do strony w niezmienionej formie. Skutek jest taki, że tekst zapisany przez anonimowego odwiedzającego może zostać potraktowany jako kod w chwili wyświetlenia raportu.
To, gdzie ten kod się uruchamia, jest częścią wartą precyzji i nie jest tym, co sugeruje brzmienie publicznego komunikatu. Ekran raportu znajduje się w panelu administracyjnym WordPressa. Kod uruchomiłby się więc w przeglądarce zalogowanego administratora, który otworzy raport dostępu wtyczki, a nie w przeglądarkach zwykłych odwiedzających Państwa witrynę. Jeśli obawiali się Państwo, że osoby przeglądające Państwa witrynę są w ten sposób atakowane: nie są, i wolę powiedzieć to wprost, niż zostawić Państwa z wrażeniem groźniejszym, niż uzasadniają to fakty.
To wyznacza również skalę sprawy. To prawdziwa nieuwierzytelniona luka typu stored i warto ją szybko naprawić, ale jest węższa niż problemy z przejęciem konta czy zdalnym wykonaniem kodu, o których piszę gdzie indziej. Sama w sobie nie daje nikomu konta administratora ani kontroli nad Państwa serwerem. Zanim cokolwiek się wydarzy, potrzeba, by administrator otworzył jeden konkretny ekran.
Tym samym wydaniem jedzie druga poprawka. Lista zmian wersji 1.4.21 odnotowuje również naprawienie luki typu wstrzyknięcie SQL w parametrach wyszukiwania i filtrowania na ekranie raportu. Dla tamtej, o ile mi wiadomo, nie opublikowano osobnego komunikatu ani identyfikatora CVE, więc nie zamierzam przypisywać jej identyfikatora; wspominam o niej, ponieważ aktualizacja do 1.4.21 usuwa także ją. To samo wydanie naprawiło dodatkowo problem z raportowaniem błędów, który mógł ujawniać ścieżki plików na serwerze, a producent przeprowadził przegląd escapowania danych wyjściowych i sanityzacji danych wejściowych w całej wtyczce. Wszystko to znaczy tyle: 1.4.21 jest wydaniem bezpieczeństwa i warto je zainstalować, nawet jeśli główny problem brzmi dla Państwa łagodnie.
Opisuję to na poziomie, jakiego właściciel witryny potrzebuje, by zadziałać, i nie dalej. Nie publikuję szczegółów, które pozwoliłyby komuś odtworzyć problem, i prosiłbym, by nie próbowali Państwo tego na własnej ani cudzej witrynie. Odczytanie numeru wersji, tak jak opisano poniżej, mówi wszystko, co potrzebne do podjęcia decyzji.
Jeśli mój e-mail powoływał się na ten problem, znaczy to, że wersja zgłaszana przez Państwa witrynę jest starsza niż 1.4.21. Nie sprawdzałem, czy akurat Państwa witrynę da się wykorzystać; zaobserwowałem wyłącznie wersję.
Czy mnie to dotyczy?
Wszystko sprowadza się do jednego pytania: której wersji Blog Floating Button Państwo używają?
W panelu administracyjnym WordPressa (źródło rozstrzygające):
- Proszę zalogować się do kokpitu WordPressa (zwykle
Państwadomena.pl/wp-admin). - Przejść do Wtyczki, a następnie Zainstalowane wtyczki.
- Odnaleźć Blog Floating Button, pozycję, której katalog to
blog-floating-button, i odczytać wersję pod jej nazwą.
Z publicznego manifestu (bez logowania): proszę otworzyć w przeglądarce
Państwadomena.pl/wp-content/plugins/blog-floating-button/readme.txt. Wiersz
Stable tag: blisko początku to wersja zgłaszana przez instalację; to ten sam publiczny
plik, który odczytałem. W przypadku tej wtyczki zgadza się on dokładnie z wersją pokazywaną w
panelu administracyjnym, w każdym opublikowanym wydaniu.
Jedno sprawdzenie, które w przypadku tej wtyczki nie działa, więc proszę na nim nie
polegać. Jeśli zwykle odczytują Państwo wersje wtyczek z numeru ?ver= dołączanego do
skryptu lub arkusza stylów w źródle strony, tutaj wprowadzi on w błąd. Wtyczka nie oznacza
tych plików własną wersją, więc WordPress wstawia zamiast niej wersję rdzenia WordPressa.
Numer w rodzaju 6.8.5 czy 7.0.1 obok jednego z plików tej wtyczki to Państwa wersja
WordPressa, a nie wersja wtyczki, i porównywanie go z 1.4.21 nie ma sensu. Proszę korzystać z
ekranu w panelu administracyjnym albo z readme.txt.
Następnie proszę zastosować tę regułę, pamiętając, że wersje porównuje się liczbowo, a nie alfabetycznie, więc 1.4.21 jest nowsza niż 1.4.9, mimo że jako tekst wygląda na mniejszą:
- Cokolwiek starszego niż 1.4.21: dotknięte problemem. Proszę zaktualizować. Nie ma granicy, poniżej której starsze wydanie znów staje się bezpieczne.
- 1.4.21 lub nowsza: już naprawiona.
Jak zaktualizować
Wtyczka jest darmowa, nadal publikowana i aktywnie rozwijana, więc poprawka to zwykła aktualizacja. Najbezpieczniejsza droga to aktualizacja przez sam WordPress, po uprzednim wykonaniu kopii zapasowej:
- Proszę wykonać kopię zapasową witryny (pliki i baza danych) przed wprowadzeniem zmian. Większość firm hostingowych oferuje kopie na jedno kliknięcie, można też użyć wtyczki do kopii zapasowych WordPressa.
- W panelu administracyjnym WordPressa proszę przejść do Kokpit, a następnie Aktualizacje, albo do Wtyczki, a następnie Zainstalowane wtyczki. Jeśli aktualizacja Blog Floating Button jest na liście, proszę zainstalować ją stąd.
- Jeśli wolą Państwo wiersz poleceń, WP-CLI robi to samo:
wp plugin update blog-floating-button. - Jeśli żadna aktualizacja się nie pojawia, najnowsze wydanie można pobrać bezpośrednio ze strony wtyczki w katalogu WordPress.org, Blog Floating Button, i zaktualizować przez Wtyczki, następnie Dodaj wtyczkę i Wyślij wtyczkę na serwer.
- Po aktualizacji proszę potwierdzić nowy numer wersji (1.4.21 lub nowszy), korzystając z kroków powyżej, i sprawdzić, czy pływający przycisk nadal się pojawia i działa normalnie.
Przy okazji warto upewnić się, że rdzeń WordPressa i pozostałe wtyczki są aktualne, ponieważ ta sama zasada dotyczy ich wszystkich.
Po aktualizacji
Aktualizacja do 1.4.21 lub nowszej zamyka ten problem: ekran raportu oczyszcza teraz każdą wartość przed wyświetleniem, więc zapisane dane śledzenia są pokazywane jako tekst, a nie traktowane jako kod.
Co mogło się już wydarzyć, powiedziane ostrożnie. Wszystko, co anonimowy odwiedzający zapisał przed aktualizacją, nadal siedzi w tabeli śledzenia wtyczki, ale zadziałałoby wyłącznie wtedy, gdyby któryś z Państwa administratorów faktycznie otworzył raport dostępu wtyczki, gdy witryna była w wersji objętej problemem. Jeśli nikt nie korzystał z tego ekranu, nic nie miało okazji się uruchomić. Aktualizacja powstrzymuje uruchomienie w przyszłości; nie cofa niczego, co już się uruchomiło.
Jeśli Państwa administratorzy regularnie korzystają z tego raportu albo po prostu chcą Państwo być dokładni, oto rozsądne i tanie sprawdzenia:
- Proszę przejrzeć konta administratorów. W panelu administracyjnym WordPressa proszę przejść do Użytkownicy, odfiltrować rolę Administrator i potwierdzić, że każde wymienione konto należy do osoby, która powinna mieć taki dostęp, i ma taki adres e-mail, jaki powinno mieć.
- Proszę przejrzeć ostatnie zmiany w użytkownikach, ustawieniach i treściach witryny pod kątem czegokolwiek, czego Państwo nie rozpoznają.
- Jeśli coś wygląda nie tak, zresetowanie haseł administratorów jest rozsądnym kolejnym
krokiem, a wygenerowanie na nowo kluczy i „soli” WordPressa w
wp-config.php(nowe wartości są o jedno kliknięcie w oficjalnym generatorze kluczy) jednorazowo wylogowuje wszystkich użytkowników.
Nie mam wglądu w to, czy na Państwa witrynie cokolwiek się wydarzyło, i tego nie sprawdzałem. To powiadomienie ostrzegawcze, a nie raport z incydentu.
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 stronę główną. Nie uzyskałem dostępu do panelu
administracyjnego WordPressa, do bazy danych ani do żadnej prywatnej części witryny i nigdy
nie otwierałem ekranu raportu Państwa wtyczki, czego zresztą nie mógłbym zrobić bez konta na
Państwa witrynie.
W szczególności nigdy niczego nie wysłałem do funkcji śledzenia wtyczki. Niczego nie przesłano, nie zapisano, nie testowano ani nie wykorzystano. Ma to tu większe znaczenie niż na większości tych stron, ponieważ funkcja śledzenia jest dokładnie tym, czego ten problem dotyczy, więc „nie dotknąłem jej” jest całą różnicą między ujawnieniem a włamaniem.
Celowo nie publikuję też 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 obserwacja oparta na wersji: Państwa witryna zgłasza wersję starszą niż 1.4.21. Witryna z tego zakresu może być już chroniona w inny sposób, na przykład przez zaporę aplikacji webowych (WAF) albo wsteczne przeniesienie poprawki. To powiadomienie nie jest stwierdzeniem, że Państwa witrynę dało się wykorzystać 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ęli, 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