CVE-2026-52851
WysokieCVSS 7.1Streszczenie
W Traccar przed wersją 6.14.0 uwierzytelniony użytkownik bez uprawnień tylko do odczytu może wysłać żądanie DELETE /api/permissions z dodatkowym kluczem JSON kontrolowanym przez atakującego. Walidacja sprawdza tylko dwa pierwsze klucze, ale removePermission() konkatenuje wszystkie klucze mapy do klauzuli WHERE SQL jako identyfikatory kolumn, co pozwala na wstrzyknięcie SQL i wyodrębnienie dowolnych danych z bazy, w tym adresu e-mail administratora, hashy haseł i soli. Podatność została naprawiona w wersji 6.14.0.
Ocena ryzyka
Atakujący z uprawnieniami zalogowanego użytkownika może wykorzystać ślepą iniekcję SQL do wyodrębnienia poufnych danych, w tym poświadczeń administratora, lub warunkowego usuwania wierszy uprawnień. Może to prowadzić do eskalacji uprawnień i pełnego przejęcia systemu.
Rekomendacja
Zaktualizuj Traccar do wersji 6.14.0 lub nowszej. Do czasu aktualizacji ogranicz uprawnienia użytkowników mogących wywoływać DELETE /api/permissions.
Inne podatności w Traccar
Zobacz wszystkie- CVE-2026-52852Średnie
Traccar to otwarty system śledzenia GPS. Przed wersją 6.14.0 uwierzytelniony użytkownik z uprawnieniami do zarządzania grupami i żądania raportów może utworzyć cykliczną hierarchię grup-rodziców i zażądać raportu trips lub stops dla urządzenia w tej hierarchii. GroupResource pozwala na cykl rodzica, a AttributeUtil.lookup podąża za rodzicami grup bez wykrywania cykli, zbioru odwiedzonych ani limitu głębokości, co powoduje, że wyszukiwanie nigdy się nie kończy, przypina wątek Jetty przy wysokim użyciu CPU i może wyczerpać pulę wątków web/API przy powtarzanych żądaniach.
- CVE-2026-44314Średnie
Traccar przed wersją 6.13.0 zawiera podatność w DeviceResource.uploadImage, która autoryzuje urządzenie tylko przez Condition.Permission, ale nie sprawdza readonly/deviceReadonly dla nie-adminów. Nieautoryzowany użytkownik może zastąpić obraz urządzenia w katalogu mediów serwera.
Oryginalny opis (angielski, źródło NVD)
Traccar is an open source GPS tracking system. Prior to 6.14.0, an authenticated, non-readonly user with access to an object usable in a permission pair can submit DELETE /api/permissions with an extra attacker-controlled JSON key. Permission(LinkedHashMap<String, Long>) in src/main/java/org/traccar/model/Permission.java validates only the first two keys, but DatabaseStorage.removePermission() in src/main/java/org/traccar/storage/DatabaseStorage.java concatenates every map key into the SQL WHERE clause as a column identifier. The extra key therefore becomes attacker-controlled SQL and provides a blind boolean or error oracle that can extract arbitrary database values, including administrator email, password hashes, and salts, or conditionally delete permission rows. Unauthenticated requests are rejected. This issue is fixed in 6.14.0.

