Biuletyn bezpieczeństwa Balbooa Forms
Jeśli otrzymali Państwo ode mnie e-mail kierujący na tę stronę, to dlatego, że Państwa witryna
wydaje się uruchamiać wersję rozszerzenia Balbooa Forms (rozszerzenia com_baforms firmy
Balbooa, znajdującego się w Państwa plikach w katalogach /components/com_baforms/ oraz
/administrator/components/com_baforms/), która jest objęta znanym problemem bezpieczeństwa.
Balbooa Forms to rozszerzenie do budowania formularzy dla systemu zarządzania treścią Joomla. Ta
strona wyjaśnia, dlaczego to ważne, jak wiarygodnie odczytać swoją wersję, oraz jak temu zaradzić.
Ten biuletyn dotyczy CVE-2026-56291, krytycznej (CVSS 10.0), aktywnie wykorzystywanej luki, która umożliwia nieuwierzytelnione zdalne wykonanie kodu poprzez obsługę załączników formularzy po stronie front-endu rozszerzenia. Dotyczy ona każdego wydania starszego niż 2.4.1. Została dodana do katalogu Known Exploited Vulnerabilities amerykańskiej Cybersecurity and Infrastructure Security Agency 10 lipca 2026 r.
Wydanie, które naprawia ten problem, nie jest wydaniem, do którego należy zaktualizować, i jest to najważniejsza informacja na tej stronie. Wydanie 2.4.1, opublikowane 9 lipca 2026 r., rzeczywiście naprawia CVE-2026-56291. Jednak druga, odrębna luka w tym samym rozszerzeniu, CVE-2026-65880, dotyczy wydań aż do 2.4.2.1 włącznie. Operator, który zaktualizuje do wersji 2.4.1 lub 2.4.2, zamyka więc drzwi, których dotyczy to powiadomienie, ale pozostawia otwarte inne. Późniejsze wydanie, 2.4.3.1, jest kolejnym wydaniem zabezpieczającym, wzmacniającym tę samą ścieżkę przesyłania plików. Dlatego: należy zaktualizować Balbooa Forms do wersji 2.4.3.1 lub nowszej, będącej bieżącym wydaniem w momencie pisania tego tekstu. Nie należy poprzestawać na wersji 2.4.1.
Nie ma starszej wersji, która byłaby bezpieczna. Zabezpieczenia kończące ten problem zostały dodane w wersji 2.4.1, co oznacza, że były nieobecne w każdym wcześniejszym wydaniu. Nie jest to luka, która pojawiła się w połowie historii rozszerzenia: własny dziennik zmian producenta pokazuje, że ścieżka przesyłania plików po stronie front-endu funkcjonowała nieprzerwanie przez całą linię 2.0.x i aż po linię 1.x, a ja osobiście potwierdziłem niezabezpieczoną obsługę bezpośrednio w kodzie źródłowym wersji 2.1.x, 2.2.0 i 2.3.x. Argument „moja instalacja jest zbyt stara, by być objęta problemem” nie ma tu zastosowania, a w praktyce bardzo wiele objętych problemem instalacji, jakie widzę, to instalacje rzeczywiście stare.
Nic nie musi być włączone, aby problem Państwa dotyczył. Oczywistym założeniem byłoby, że witryna jest narażona tylko wtedy, gdy publikuje formularz akceptujący załączniki plików, więc chcę wyraźnie powiedzieć, że tak nie jest. Nie ma żadnego ustawienia, które wyłączałoby wersję objętą problemem z zakresu ryzyka, a darmowa edycja rozszerzenia zawiera ten sam podatny kod co edycje płatne, więc argument „korzystamy tylko z darmowej wersji” również nie jest wyjściem. Liczy się po prostu to, jakiej wersji Państwo używają.
Ponieważ ta luka była wykorzystywana, zanim powstała poprawka, sama aktualizacja nie jest całym zadaniem. Powinni Państwo również sprawdzić swoją witrynę pod kątem oznak, że ktoś dotarł tam wcześniej (zobacz Jeśli korzystali Państwo z wersji, której dotyczy problem poniżej).
Jest to luka w rozszerzeniu, a nie w rdzeniu Joomla. Dotyczy ona w równym stopniu witryn na Joomla 4, 5 i 6: w pełni aktualny rdzeń Joomla nie chroni Państwa, jeśli samo rozszerzenie Balbooa Forms jest nieaktualne.
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ę Państwa o pieniądze, hasła ani dostęp do Państwa witryny, i nie próbowałem się do niej włamać, niczego przesłać ani niczego wykorzystać.
Jedynie przyjrzałem się plikom, 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): Państwa stronom, adresom zasobów
front-endowych rozszerzenia zapisanym na tych stronach oraz publicznemu plikowi manifestu
rozszerzenia. To wszystko. Celowo nie dotknąłem podatnej funkcji przesyłania plików, nie
przesłałem żadnego formularza na Państwa witrynie i nie zażądałem katalogu
images/baforms/uploads/ na Państwa witrynie ani gdziekolwiek indziej. Ta ścieżka pojawia się
dalej na tej stronie wyłącznie jako miejsce, w którym mogą Państwo sami sprawdzić swoją witrynę.
Nic w tym sprawdzeniu nie dotyka Państwa danych, panelu administracyjnego ani żadnej prywatnej
części Państwa witryny.
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
Balbooa Forms służy do budowania formularzy kontaktowych, formularzy zapytań ofertowych i podobnych formularzy na witrynach Joomla. Częścią jego funkcjonalności jest możliwość dołączenia przez odwiedzającego pliku podczas przesyłania formularza.
W wersjach objętych problemem obsługa stojąca za tą funkcją jest dostępna bez logowania i nie sprawdza właściwie, jakiego rodzaju plik otrzymuje. To połączenie pozwala atakującemu umieścić na Państwa serwerze dowolnie wybrany przez siebie program i go uruchomić: pełne zdalne wykonanie kodu, bez potrzeby posiadania konta i bez jakiejkolwiek współpracy z Państwa strony.
Nie jest to ryzyko teoretyczne. Luka otrzymała ocenę 10,0 na 10, czyli maksymalną, i jest wykorzystywana w praktyce. Wykorzystywanie zaobserwowano od 8 lipca 2026 r., dzień przed publikacją poprawki 9 lipca 2026 r., a amerykańska Cybersecurity and Infrastructure Security Agency dodała ją do katalogu Known Exploited Vulnerabilities 10 lipca 2026 r. Zgłosił ją Phil Taylor z mySites.guru.
Opisuję to na poziomie potrzebnym właścicielowi witryny, by mógł 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. Odczytanie numeru swojej 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ę jest starsza niż 2.4.1. Nie sprawdzałem, czy Państwa konkretna witryna jest podatna na wykorzystanie lub już naruszona, a jedynie to, że zgłasza wersję objętą problemem.
Jak sprawdzić swoją wersję
Nie muszą Państwo wierzyć mi na słowo co do tego, jakiej wersji Państwo używają. Istnieją dwa wiarygodne sposoby sprawdzenia oraz jeden mylący sygnał, specyficzny dla tego rozszerzenia, o którym warto wiedzieć.
Z panelu administracyjnego Joomla (źródło rozstrzygające):
- Proszę zalogować się do panelu administracyjnego Joomla (zwykle pod adresem
yourdomain.com/administrator). - Proszę przejść do System następnie Zarządzaj następnie Rozszerzenia (lub Rozszerzenia następnie Zarządzaj, w zależności od wersji Joomla).
- Proszę wyszukać Balbooa Forms i odnotować zainstalowaną wersję.
Z pliku manifestu na dysku: proszę otworzyć
/administrator/components/com_baforms/baforms.xml
i odczytać jego element <version>. To właśnie faktycznie uruchamia Państwa witryna.
Proszę zwrócić uwagę, który plik baforms.xml Państwo czytają. Instalacja Joomla z tym
rozszerzeniem zawiera trzy różne pliki o tej nazwie, a tylko ten pod powyższą ścieżką należy
do samego rozszerzenia. Kopie pod /administrator/manifests/files/ oraz
/plugins/editors-xtd/baforms/ mają własne numery wersji, znacznie starsze i w żaden sposób
nieodzwierciedlające wersji rozszerzenia. Przypadkowe odczytanie jednej z nich znacznie zaniży
Państwa wersję.
Numer wersji widoczny w źródle strony nie jest wiarygodny. Balbooa Forms umieszcza numer
wersji w adresach swoich zasobów front-endowych, więc oglądając źródło strony zawierającej
formularz, mogą Państwo zobaczyć coś w rodzaju ba-form.js?2.3.0.2. Ten numer nie jest
odczytywany z faktycznie serwowanych plików. Pochodzi z kopii manifestu rozszerzenia
przechowywanej w bazie danych Joomla, którą aktualizuje wyłącznie instalator Joomla. Jeśli
rozszerzenie było kiedykolwiek aktualizowane przez nadpisanie starych plików nowymi, zamiast
instalacji przez Joomlę, strona może wyświetlać wersję, której witryna faktycznie nie uruchamia,
i może się mylić w obu kierunkach: stary numer na zaktualizowanych plikach albo nowy numer na
starych. Zamiast tego proszę skorzystać z ekranu administracyjnego lub pliku manifestu na dysku.
Następnie proszę zastosować tę regułę:
- Wszystko starsze niż 2.4.1: objęte tym problemem. Nie ma dolnej granicy, poniżej której starsze wydanie ponownie staje się bezpieczne.
- 2.4.1 lub 2.4.2: naprawione w zakresie tego problemu, ale nadal objęte CVE-2026-65880, odrębną luką wspomnianą powyżej. Proszę kontynuować.
- 2.4.3.1 lub nowsza: bieżąca. To wersja, w której powinni Państwo się znaleźć.
Jak zaktualizować
Najbezpieczniejsza droga to aktualizacja przez samą Joomlę, po uprzednim wykonaniu kopii zapasowej:
- Proszę wykonać kopię zapasową swojej witryny (plików i bazy danych) przed wprowadzeniem zmian. Większość dostawców hostingu oferuje kopie zapasowe jednym kliknięciem, można też skorzystać z rozszerzenia do tworzenia kopii zapasowych Joomla.
- W panelu administracyjnym Joomla proszę otworzyć Rozszerzenia następnie Zarządzaj następnie Aktualizuj, i kliknąć Znajdź aktualizacje. Jeśli aktualizacja Balbooa Forms znajduje się na liście, proszę zainstalować ją stąd.
- Jeśli żadna aktualizacja się tam nie pojawi, proszę pobrać najnowsze wydanie bezpośrednio od producenta, Balbooa, i zainstalować je przez Rozszerzenia następnie Zainstaluj. Zarówno darmowa, jak i płatne edycje są aktualizowane za pośrednictwem strony producenta.
- Proszę instalować przez Joomlę, a nie przez nadpisywanie starych plików nowymi. Kopiowanie plików pozostawia nieaktualny zapis wersji w Joomli, co jest właśnie przyczyną niewiarygodności numeru widocznego w źródle strony, i może pozostawić po sobie stare pliki.
- Po aktualizacji proszę potwierdzić nowy numer wersji (2.4.3.1 lub nowszy), korzystając z powyższych kroków, i sprawdzić, czy Państwa formularze nadal wyświetlają się i są przesyłane prawidłowo.
Skoro już Państwo tam są, warto potwierdzić, że sama Joomla oraz pozostałe rozszerzenia są aktualne, ponieważ ta sama zasada dotyczy ich wszystkich.
Jeśli korzystali Państwo z wersji, której dotyczy problem
Ponieważ ta luka była wykorzystywana, zanim dostępna była poprawka, witryna, która korzystała z wersji objętej problemem, nie powinna zakładać, że sama aktualizacja wystarczy. Aktualizacja zamyka drzwi, ale nie mówi, czy ktoś już nimi wcześniej przeszedł. Warto to sprawdzić spokojnie, zamiast zakładać najgorsze: większość witryn niczego nie znajdzie.
Oto, czego Państwo (lub Państwa webmaster) mogą szukać na własnej witrynie:
-
Nieoczekiwane pliki PHP w katalogu przesyłania. Proszę poszukać plików
.phpgdziekolwiek podimages/baforms/uploads/, łącznie ze wszystkimi jego podkatalogami. Nic legalnego nie umieszcza tam plików PHP. Na hoście linuksowym sprawdzenie wygląda tak:find images/baforms/uploads -name '*.php' -type f - Konta administratorów, których Państwo nie rozpoznają. Proszę przejrzeć listę użytkowników w Użytkownicy następnie Zarządzaj. Proszę też sprawdzić daty rejestracji kont, które Państwo rozpoznają, ponieważ konto założone na początku lipca 2026 r., o którym zakładali Państwo, że istniało zawsze, zasługuje na dodatkowe spojrzenie.
- Pliki PHP w innych miejscach witryny zmodyfikowane w okolicach lub po początku lipca 2026 r., zwłaszcza takie, których Państwo nie potrafią wyjaśnić.
Jeśli znajdą Państwo cokolwiek z powyższego, proszę potraktować witrynę jako naruszoną: zmienić wszystkie dane uwierzytelniające (panel administracyjny Joomla, baza danych, FTP/SSH, panel hostingu), przejrzeć konta użytkowników Joomla oraz grupy, do których należą, i rozważyć przywrócenie z kopii zapasowej wykonanej przed 8 lipca 2026 r., zamiast próbować oczyścić witrynę na miejscu. Oczyszczenie na miejscu jest trudne do prawidłowego wykonania, ponieważ pozostawiony backdoor może cofnąć efekty czyszczenia. Jeśli Państwa organizacja ma zespół bezpieczeństwa IT lub krajowy CERT, proszę go włączyć do sprawy.
Chcę to jasno powiedzieć: nie sprawdzałem Państwa witryny pod kątem żadnego z tych wskaźników i nie wiem, czy Państwa witryna była objęta problemem. Ta lista znajduje się tutaj, aby mogli Państwo sprawdzić samodzielnie.
Nie mam webmastera / utknąłem
Jeśli nie zajmują się Państwo witryną osobiście, proszę przekazać tę stronę osobie, która to robi (Państwa deweloperowi, agencji lub firmie hostingowej). Powyższe kroki rozpozna od razu.
Jeśli utrzymują Państwo witrynę samodzielnie i utkną Państwo, 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
- Wpis w NVD (CVE-2026-56291)
- GitHub Advisory Database (GHSA-28f5-j5p5-xmmw)
- Katalog CISA znanych wykorzystywanych podatności
Producent (Balbooa)
Zgłoszenie i analiza