Krytyczna luka w zabezpieczeniach naraża Fortinet FortiWeb na całkowite przejęcie kontroli nad systemem (CVE-2025-25257)

WatchTowr Labs ujawnia lukę CVE-2025-25257, krytyczny atak typu SQL injection w FortiWeb, umożliwiający zdalne wykonanie kodu bez uwierzytelnienia. Natychmiast zainstaluj aktualizację na urządzeniach FortiWeb 7.0, 7.2, 7.4 i 7.6, aby zapobiec całkowitemu zagrożeniu systemu. Zaktualizuj TERAZ!
Badacze zajmujący się bezpieczeństwem cybernetycznym odkryli poważną słabość, CVE-2025-25257 , w kluczowym elemencie oprogramowania zabezpieczającego firmy Fortinet: FortiWeb Fabric Connector , który jest niezbędny do połączenia zapory aplikacji internetowych Fortinet (FortiWeb) z innymi narzędziami zabezpieczającymi, umożliwiając dynamiczną ochronę.
Luka została pierwotnie zgłoszona firmie Fortinet przez Kentaro Kawane z GMO Cybersecurity by Ierae. Późniejsza demonstracja eskalacji luki do pełnej kontroli nad systemem została przeprowadzona i opublikowana przez watchTowr Labs, a wyniki udostępniono wyłącznie serwisowi Hackread.com.
Jest to luka typu „nieuwierzytelniony atak SQL w interfejsie graficznym”, co oznacza, że atakujący mogą wykorzystać lukę w interfejsie administracyjnym systemu bez konieczności podawania nazwy użytkownika i hasła, oszukując system FortiWeb i zmuszając go do uruchomienia własnych szkodliwych poleceń poprzez wysyłanie specjalnie zaprojektowanych żądań przez Internet.
Laboratoria WatchTowr odkryły ten ukryty problem, porównując wersję FortiWeb 7.6.4 ze starszą wersją 7.6.3. Zidentyfikowali lukę w funkcji get_fabric_user_by_token w programie /bin/httpsd
. Funkcja ta, przeznaczona do logowania z innych urządzeń Fortinet, takich jak zapory sieciowe FortiGate, nieprawidłowo sprawdzała informacje przychodzące, co umożliwiało wstrzykiwanie szkodliwych poleceń z wykorzystaniem nagłówka Authorization: Bearer w żądaniach do /api/fabric/device/status
.
Początkowe próby były trudne ze względu na ograniczenia, takie jak niedozwolone spacje w poleceniach. Jednak badacze sprytnie ominęli to, stosując składnię komentarzy MySQL (/**/)
. To sprawiło, że atak SQL injection zakończył się sukcesem, a nawet pozwolił im całkowicie ominąć weryfikację logowania za pomocą prostego polecenia 'or'1'='1
, które zwróciło komunikat „200 OK” potwierdzający powodzenie.
Badaczom udało się doprowadzić do eskalacji tego początkowego ataku SQL injection do poziomu zdalnego wykonania kodu (RCE). Osiągnęli to za pomocą polecenia INTO OUTFILE w MySQL, zapisując pliki bezpośrednio w katalogu systemowym. Kluczowym odkryciem było to, że proces bazy danych działał z uprawnieniami roota, co pozwalało mu umieszczać szkodliwe pliki niemal w dowolnym miejscu.
Chociaż bezpośrednie wykonanie nie było możliwe, wykorzystali istniejący skrypt Pythona w folderze /cgi-bin
, który automatycznie uruchamiał się z wysokimi uprawnieniami. Zapisując specjalny plik Pythona (.pth) w określonym katalogu Pythona, mogli wymusić na systemie uruchomienie własnego kodu Pythona, co dowodziło całkowitego naruszenia bezpieczeństwa systemu.
W przypadku wykorzystania luki atakujący może uzyskać pełną kontrolę nad urządzeniem FortiWeb i potencjalnie innymi podłączonymi systemami. Grozi to kradzieżą poufnych danych, przerwaniem świadczenia usług lub wykorzystaniem systemów do dalszych ataków, co może prowadzić do znacznych strat finansowych, utraty reputacji i szkód prawnych.
Aby zachować bezpieczeństwo, należy natychmiast zaktualizować system FortiWeb do wersji z poprawkami . Jeśli natychmiastowa aktualizacja nie jest możliwa, Fortinet zaleca tymczasowe wyłączenie interfejsu administracyjnego HTTP/HTTPS jako rozwiązanie tymczasowe.
Poniżej przedstawiamy szczegóły dotyczące wersji FortiWeb, których dotyczy problem:
- 7.6.0 do 7.6.3 (aktualizacja do wersji 7.6.4 lub nowszej)
- 7.4.0 do 7.4.7 (aktualizacja do wersji 7.4.8 lub nowszej)
- 7.2.0 do 7.2.10 (aktualizacja do wersji 7.2.11 lub nowszej)
- 7.0.0 do 7.0.10 (aktualizacja do wersji 7.0.11 lub nowszej)
HackRead