CVE-2026-85743
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
FreeScout przed wersją 1.8.230 ma niespójne egzekwowanie polityki ograniczania hostów w wielu ścieżkach wychodzących (Helper::downloadRemoteFile(), Helper::checkPort(), Helper::sanitizeRemoteUrl(), MailboxesController.php, ModulesController.php). Uwierzytelniony administrator lub użytkownik mogący zmieniać ustawienia połączeń skrzynek lub wyzwalać aktualizacje modułów może podać atakującemu kontrolowane URL-e lub hosty, docierając do pętli zwrotnej i usług wewnętrznych.
Ocena ryzyka
Możliwe jest SSRF prowadzące do kontaktu z usługami wewnętrznymi, ślepego wywiadu portowego oraz pobierania wewnętrznych odpowiedzi HTTP do aplikacji. Wymaga to jednak uprawnień uwierzytelnionego użytkownika.
Rekomendacja
Zaktualizuj FreeScout do wersji 1.8.230 lub nowszej. Ogranicz uprawnienia do zmiany ustawień skrzynek i modułów oraz weryfikuj konfigurację whitelisty przekierowań.
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-53595Krytyczne
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`.
- 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-85742Wysokie
FreeScout przed wersją 1.8.230 pozwala uwierzytelnionemu atakującemu umieścić HTML w wartości adresu e-mail nieudanego logowania, który jest kopiowany przez monitorowaną aktywność użytkownika do kolejkowanego zadania SendAlert. Gdy dostarczenie alertu zawiedzie, zserializowany ładunek trafia do failed_jobs, a endpoint szczegółów zadania administratora renderuje go po filtrze blacklisty, który pozostawia wykonywalne atrybuty obsługi zdarzeń, umożliwiając wykonanie JavaScriptu w kontekście administratora.
- CVE-2026-85744Średnie
W FreeScout przed wersją 1.8.227 akcja conversation_merge zapisuje nieudaną kontrolę autoryzacji dla docelowej rozmowy w response['msg'], a następnie czyści tę wartość w pętli rozmowy źródłowej. Uwierzytelniony agent może scalić kontrolowaną przez siebie rozmowę z docelową rozmową w skrzynce, do której nie ma dostępu.
- CVE-2026-62856Wysokie
FreeScout przed wersją 1.8.226 nie escapuje wildcardów SQL LIKE w nazwach kanałów dostarczanych do endpointu polycast/receive, a autoryzacja kanałów dotyczy tylko nazw z określonymi prefiksami. Nieuwierzytelniony atakujący z sesją gościa i ważnym tokenem CSRF może podać nazwę kanału z wildcardem, aby pobrać zdarzenia powiadomień innych użytkowników, ujawniając treść wiadomości, identyfikatory, URL-e i HTML powiadomień.
- CVE-2026-62855Średnie
W FreeScout przed wersją 1.8.225 przeglądarka App Logs dostępna tylko dla administratora przyjmuje zaszyfrowane przez Laravel parametry folderu i pliku, których skonstruowana ścieżka jest sprawdzana tylko jako surowy ciąg znaków. Administrator znający APP_KEY może podać segmenty przejścia ścieżki, które system plików normalizuje poza storage/logs, umożliwiając odczyt lokalnych plików.
- CVE-2026-62854Wysokie
FreeScout przed wersją 1.8.225 pozwala użytkownikowi mogącemu edytować podpis skrzynki połączyć skryptowalny plik przesłany przez /uploads/upload z zagnieżdżonymi fragmentami tagów omijającymi Helper::stripDangerousTags(). Wynikowy skrypt jest serwowany z tego samego origin, więc polityka script-src 'self' go przepuszcza, gdy inny użytkownik otworzy edytor odpowiedzi lub stronę nowego zgłoszenia.
Oryginalny opis (angielski, źródło NVD)
FreeScout is a self-hosted help desk and shared mailbox. Prior to 1.8.230, multiple outbound paths in Helper::downloadRemoteFile(), Helper::checkPort(), Helper::sanitizeRemoteUrl(), MailboxesController.php, and ModulesController.php do not consistently enforce a sink-level restricted-host policy. An authenticated administrator, or another authenticated user permitted to change mailbox connection settings or trigger module update or installation paths, can supply attacker-controlled URLs or hosts. The independent download and port-test sinks can reach encoded or otherwise uncovered loopback and internal addresses. The redirect-validation bypass additionally requires a configured whitelist that permits the original and final hosts while a restricted internal host appears only as an intermediate redirect hop. No unauthenticated SSRF path is established. The server can consequently contact loopback and internal services, provide a blind internal port oracle, and retrieve internal HTTP responses into application-controlled download sinks. This issue is fixed in version 1.8.230.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

