CVE-2025-67269
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
W gpsd przed commit `ffa1d6f40bca0b035fc7f5e563160ebb67199da7` występuje podatność na niedomiar liczby całkowitej bez znaku w funkcji `nextstate()` w pliku `gpsd/packet.c`. Podczas parsowania pakietu NAVCOM długość ładunku jest obliczana jako `lexer->length = (size_t)c - 4` bez sprawdzenia, czy bajt wejściowy `c` jest mniejszy niż 4, co prowadzi do ustawienia bardzo dużej wartości i pętli konsumującej 100% CPU.
Ocena ryzyka
Atakujący może wysłać specjalnie spreparowany pakiet NAVCOM, powodując 100% wykorzystanie CPU i odmowę usługi (DoS), co uniemożliwia działanie serwera gpsd i aplikacji zależnych od danych GPS.
Rekomendacja
Należy natychmiast zaktualizować gpsd do wersji zawierającej commit `ffa1d6f40bca0b035fc7f5e563160ebb67199da7` lub nowszej. Jeśli aktualizacja nie jest możliwa, należy ograniczyć dostęp do serwera gpsd tylko do zaufanych źródeł.
Inne podatności w gpsd
Zobacz wszystkie- CVE-2025-67268Krytyczne
W gpsd przed commit dc966aa wykryto podatność polegającą na zapisie poza dozwolonym obszarem pamięci sterty w pliku drivers/driver_nmea2000.c. Funkcja hnd_129540, obsługująca pakiety NMEA2000 PGN 129540, nie weryfikuje liczby satelitów podanej przez użytkownika względem rozmiaru tablicy skyview (184 elementy). Atakujący może podać liczbę satelitów do 255, co prowadzi do zapisu poza tablicą, powodując uszkodzenie pamięci, odmowę usługi (DoS) i potencjalnie wykonanie dowolnego kodu.
- CVE-2026-60122Wysokie
gpsd do wersji release-3.27.5 zawiera podatność na wstrzyknięcie kodu w narzędziu gpsprof, gdzie atakujący kontrolujący dane wejściowe GPS może wstrzyknąć złośliwe polecenia OS przez pole SKY.satellites[].used, które jest nieoczyszczone umieszczane w heredoc gnuplota.
- CVE-2026-58459Wysokie
W gpsd do wersji 3.27.5 (załatane w commicie 4c06658) wykryto podatność na wstrzykiwanie poleceń w narzędziu gpsprof. Atakujący kontrolujący wartość pola subtype urządzenia GPS może osadzić ładunek w backtickach w tytule wykresu gnuplot, co prowadzi do wykonania dowolnych poleceń powłoki podczas renderowania wykresu przez ofiarę.
Oryginalny opis (angielski, źródło NVD)
An integer underflow vulnerability exists in the `nextstate()` function in `gpsd/packet.c` of gpsd versions prior to commit `ffa1d6f40bca0b035fc7f5e563160ebb67199da7`. When parsing a NAVCOM packet, the payload length is calculated using `lexer->length = (size_t)c - 4` without checking if the input byte `c` is less than 4. This results in an unsigned integer underflow, setting `lexer->length` to a very large value (near `SIZE_MAX`). The parser then enters a loop attempting to consume this massive number of bytes, causing 100% CPU utilization and a Denial of Service (DoS) condition.

