CVE-2026-53595
KrytyczneCVSS 9.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
W FreeScout przed wersją 1.8.224 publiczny endpoint `POST /user-setup/{hash}/{invite_sent_at}` pozwala atakującemu na przejęcie konta użytkownika bez uwierzytelnienia. Podatność wynika z pomijania spacji w VARCHAR w MySQL/MariaDB oraz z nieprawidłowego deszyfrowania parametru `invite_sent_at`.
Ocena ryzyka
Anonimowy atakujący może zmienić adres e-mail i hasło najstarszego aktywnego konta (agenta lub administratora), a następnie zalogować się jako ta osoba, uzyskując pełny dostęp do systemu pomocy technicznej.
Rekomendacja
Niezwłocznie zaktualizuj FreeScout do wersji 1.8.224 lub nowszej. Jeśli aktualizacja nie jest możliwa, tymczasowo zablokuj dostęp do endpointu `/user-setup/{hash}/{invite_sent_at}` dla niezaufanych adresów IP.
Inne podatności w FreeScout
Zobacz wszystkie- CVE-2026-41906Wysokie
FreeScout to darmowy system pomocy technicznej i wspólnej skrzynki odbiorczej zbudowany na frameworku Laravel. Przed wersją 1.8.214, modal zmiany klienta poprawnie ukrywał klientów spoza zakresu, jednak backendowa akcja conversation_change_customer akceptowała dowolny podany adres e-mail klienta.
- CVE-2026-41905Wysokie
FreeScout przed wersją 1.8.217 zawierał lukę w funkcji Helper::sanitizeRemoteUrl(), która nieprawidłowo walidowała adresy URL po przekierowaniach HTTP. Atakujący mógł wykorzystać tę lukę do przekierowania ruchu do wewnętrznych usług HTTP, które normalnie byłyby zablokowane.
- CVE-2026-41904Wysokie
FreeScout przed wersją 1.8.217 pozwala użytkownikom z uprawnieniami updateAutoReply na zapisanie ładunku XSS w wiadomości automatycznej odpowiedzi. Ładunek ten jest renderowany bez ucieczki w e-mailu automatycznej odpowiedzi wysyłanym do klientów.
- CVE-2026-41902Krytyczne
FreeScout przed wersją 1.8.217 ma lukę w punkcie końcowym /user-setup/{hash}, który akceptuje 60-znakowy losowy invite_hash do ustawienia hasła nowego użytkownika. Brak weryfikacji wygaszenia hasha pozwala na nieautoryzowane przejęcie konta przez długi czas po wydaniu zaproszenia.
- CVE-2026-53596Średnie
FreeScout, darmowe narzędzie helpdesk oparte na Laravelu, nie ogranicza szybkości żądań na punkcie końcowym przesyłania plików. Każdy użytkownik może zasypać serwer żądaniami przesyłania, prowadząc do przeciążenia bazy danych i potencjalnej odmowy usługi dla wszystkich użytkowników. Problem został naprawiony w wersji 1.8.224.
- CVE-2026-53594Średnie
FreeScout przed wersją 1.8.224 zawiera podatność w funkcji App Logs, która pozwala uwierzytelnionemu atakującemu na pobranie dowolnych plików lokalnych czytelnych dla procesu PHP poprzez manipulację parametrem dl.
- CVE-2026-53593Wysokie
FreeScout przed wersją 1.8.224 posiada niekompletną listę zablokowanych rozszerzeń plików, która nie obejmuje rozszerzenia .pht. Uwierzytelniony agent może przesłać webshella .pht, co pozwala na zdalne wykonanie kodu na serwerze WWW.
- CVE-2026-53592Średnie
Podatność Prototype Pollution w funkcji getQueryParam w pliku /public/js/main.js w FreeScout. Obejście w wersji 1.8.139 jest niekompletne, umożliwiając atak przez zagnieżdżone klucze URL. Poprawka w wersji 1.8.223.
- CVE-2026-53591Wysokie
Podatność w FreeScout przed wersją 1.8.223. Nieuwierzytelniony atakujący może wstrzyknąć wiadomość do dowolnej istniejącej rozmowy wsparcia, wysyłając e-mail z spreparowanym nagłówkiem In-Reply-To. Wiadomość jest wyświetlana jako odpowiedź klienta, a rozmowa jest automatycznie otwierana.
- CVE-2026-48812Wysokie
Podatność w FreeScout (wersje przed 1.8.221) w mechanizmie pobierania załączników. Nieuwierzytelniony atakujący może pobrać dowolny załącznik utworzony przez starszą wersję, ponieważ pomijane jest uwierzytelnianie tokenem dla załączników z typem tokena legacy.
Oryginalny opis (angielski, źródło NVD)
FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Prior to version 1.8.224, the public endpoint `POST /user-setup/{hash}/{invite_sent_at}` (`OpenController@userSetupSave`) selects the target account solely by its `invite_hash` column, then overwrites that account's email and password and logs in as it. No authentication, cookie, or prior session is required. After a user activates, FreeScout sets `invite_hash` to the empty string. On MySQL and MariaDB, `VARCHAR` equality ignores trailing spaces, so a single URL-encoded space (`%20`) matches the stored empty string and selects the lowest-id activated user. The expiry guard decrypts `invite_sent_at` with the target's password hash, but `Helper::decrypt` returns its raw input unchanged when decryption fails. A plaintext numeric value such as `9999999999` therefore passes the time-to-live check without any secret. The result is that an anonymous attacker sets the email and password of the lowest-id activated FreeScout account (a support agent, or an administrator if one was added by invitation) and authenticates as that account. Version 1.8.224 contains a fix.

