CVE-2026-50186
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
4gaBoards przed wersją 3.3.8 pozwala uwierzytelnionemu menedżerowi projektu na podanie sekwencji przejścia do katalogu w parametrze filename w żądaniu GET /exports/:id/:filename. W pliku server/api/controllers/boards/download.js wartość inputs.filename jest przekazywana do path.join() bez walidacji, co umożliwia wybranie dowolnego pliku czytelnego dla procesu serwera. Dodatkowo, po pobraniu pliku, ten sam path jest używany do usunięcia pliku, co może prowadzić do utraty danych lub DoS.
Ocena ryzyka
Atakujący może odczytać dowolne pliki z serwera, w tym dane wrażliwe, oraz usunąć je, co może spowodować utratę danych lub przerwanie działania usługi.
Rekomendacja
Zaktualizuj 4gaBoards do wersji 3.3.8 lub nowszej, która zawiera poprawkę.
Inne podatności w 4gaBoards
Zobacz wszystkie- CVE-2026-53959Średnie
Podatność w 4gaBoards (przed 3.3.9) pozwala każdemu zalogowanemu użytkownikowi na enumerację kont i odczyt danych wszystkich użytkowników przez API /api/users, bez autoryzacji.
- CVE-2026-53958Wysokie
Podatność w systemie 4gaBoards (przed wersją 3.3.9) pozwala uwierzytelnionemu użytkownikowi na modyfikację atrybutów tożsamości SSO (np. ssoGoogleId) przez PATCH /api/users/:id. Atakujący może przypisać identyfikator ofiary do swojego konta, co prowadzi do przejęcia konta ofiary podczas pierwszego logowania SSO.
- CVE-2026-50191Wysokie
Podatność w systemie 4gaBoards (przed wersją 3.3.8) umożliwia przejęcie konta przed logowaniem, gdy rejestracja i SSO są włączone. Atakujący może utworzyć niezweryfikowane konto z adresem e-mail ofiary, a następnie podczas pierwszego logowania SSO ofiary, tożsamość SSO jest linkowana do konta atakującego.
Oryginalny opis (angielski, źródło NVD)
4gaBoards is a boards system for realtime project management. Prior to 3.3.8, 4gaBoards allows an authenticated project manager to supply traversal sequences in the filename parameter of GET /exports/:id/:filename. In server/api/controllers/boards/download.js, the decoded inputs.filename value is passed to path.join() beneath private/exports/<user_id>/ without containment validation. A crafted value such as ../ can select an arbitrary file readable by the server process, and the file is returned to the attacker. The fileStream close handler then passes the same path to fs.unlink(), deleting the selected file and potentially causing data loss or denial of service. This issue is fixed in version 3.3.8.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

