CVE-2026-103984
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
W FreeScout, samodzielnie hostowanym systemie help desk, w wersjach przed 1.8.231, gdy włączono limit_user_customer_visibility, akcja AJAX load_customer_info wykonuje globalne wyszukiwanie na podstawie kontrolowanego przez atakującego adresu e-mail klienta i sprawdza jedynie dostęp do osobno podanej skrzynki. Agent bez uprawnień administratora może wskazać dostępną skrzynkę i pobrać profil niepowiązanego klienta bez wywołania CustomerPolicy::view(), co może ujawnić dane osobowe i poufne notatki wewnętrzne.
Ocena ryzyka
Może prowadzić do wycieku danych osobowych klientów oraz poufnych notatek wewnętrznych agentów. Narusza to kontrolę dostępu i może skutkować naruszeniem ochrony danych.
Rekomendacja
Zaktualizuj FreeScout do wersji 1.8.231 lub nowszej. Do czasu aktualizacji rozważ ograniczenie uprawnień agentów i monitorowanie nietypowych zapytań load_customer_info.
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-85743Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
FreeScout is a self-hosted help desk and shared mailbox. Prior to 1.8.231, when limit_user_customer_visibility is enabled, the load_customer_info AJAX action performs a global lookup using an attacker-controlled customer email and checks only whether the agent can access a separately supplied mailbox. A non-admin agent can name an accessible mailbox and retrieve an unrelated customer's rendered profile without invoking CustomerPolicy::view(). The response can expose names, email addresses, phone numbers, company and job information, postal addresses, social profiles, websites, and confidential internal agent notes. This issue is fixed in version 1.8.231.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

