Narzędzie gpsprof wchodzące w skład pakietu gpsd zawiera podatność typu command injection, która pozwala atakującemu kontrolującemu wartość pola subtype urządzenia GPS na wykonanie dowolnych poleceń powłoki. Podatność jest groźna, ponieważ złośliwe dane mogą pochodzić z urządzenia GPS lub pliku logu, a wykonanie kodu następuje w kontekście użytkownika uruchamiającego gnuplot.
▸ Pokaż oryginał (EN)
gpsd through release-3.27.5, fixed at commit 4c06658, contains a command injection vulnerability in gpsprof that allows attackers who control the GPS device subtype value to execute arbitrary shell commands by embedding backtick payloads in the gnuplot plot title without proper escaping. The subtype field sourced from a DEVICES JSON log entry or NMEA PGRMT sentence is written into a generated gnuplot program via a set title statement with only double-quote characters escaped, enabling arbitrary shell command execution as the user running gnuplot when the victim renders the generated plot through the gpsprof and gnuplot workflow.
Pole subtype, pochodzące z wpisu JSON w logu DEVICES lub ze zdania NMEA PGRMT, jest wpisywane do generowanego skryptu gnuplot jako część instrukcji 'set title'. Filtrowanie danych wejściowych ogranicza się wyłącznie do escaping'u znaków podwójnego cudzysłowu, pozostawiając możliwość osadzenia backtick payloads (np. `` `polecenie` ``). Gdy ofiara generuje wykres za pomocą gpsprof, gnuplot przetwarza skrypt i wykonuje osadzone polecenia powłoki w kontekście bieżącego użytkownika.
Atakujący, który kontroluje wartość pola subtype przekazywaną przez urządzenie GPS lub plik logu, może wykonać dowolne polecenia powłoki z uprawnieniami użytkownika uruchamiającego gnuplot, co może prowadzić do przejęcia konta, kradzieży danych lub dalszego kompromitowania systemu.
Należy zaktualizować gpsd do wersji zawierającej fix z commitu 4c06658e988f4ced1a7a574ce082a22ef625df56 (oraz powiązanych commitów 1a6bb7bcbdf58aa940132e630870af061dc88537 i 5581ba196d826a984fbfaf792b7d58535f9911ce). Do czasu aktualizacji zaleca się unikanie generowania wykresów gpsprof na podstawie danych pochodzących z niezaufanych urządzeń GPS lub niezaufanych plików logów.
gpsd w wersjach do release-3.27.5 włącznie; błąd naprawiony w commicie 4c06658
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XGpsd Project Gpsd
APPGpsd Project≤ 3.27.5
Powiązane podatności
Heap buffer overflow w gpsd — przepełnienie bufora w obsłudze NMEA2000 PGN 129540
An integer underflow vulnerability exists in the `nextstate()` function in `gpsd/packet.c` of gpsd versions pr...
gpsd versions 2.90 to 3.17 and microjson versions 1.0 to 1.3, an open source project, allow a stack-based buff...
An integer underflow vulnerability exists in the NTRIP Stream Parsing functionality of GPSd 3.25.1~dev. A spec...
The NMEA0183 driver in gpsd before 3.9 allows remote attackers to cause a denial of service (daemon terminatio...