CVE-2026-0799
WysokieCVSS 8.7Streszczenie
W instrukcjach BPF, które ładują/zapisują wartość z/do rejestru pamięci scratch, indeks rejestru jest 32-bitową liczbą całkowitą bez znaku i nie może przekraczać 15, ale interpreter BPF w libpcap nie sprawdza tej wartości. W szczególnych, rzadkich przypadkach użycia, spreparowany program filtru może spowodować, że interpreter będzie próbował czytać i zapisywać pamięć procesu systemu operacyjnego w obszarze 16 GiB zaczynając od bieżącej ramki stosu na architekturach 64-bitowych oraz w całej przestrzeni adresowej na architekturach 32-bitowych.
Ocena ryzyka
Lokalny atakujący może wykorzystać tę podatność do odczytu i zapisu pamięci procesu, co może prowadzić do eskalacji uprawnień lub awarii systemu.
Rekomendacja
Zaktualizuj libpcap do wersji, w której poprawiono walidację indeksu rejestru.
Inne podatności w libpcap
Zobacz wszystkie- CVE-2026-6554Średnie
Interpretator BPF w libpcap traktuje przesunięcie w instrukcji BPF 'ja L' jako liczbę całkowitą ze znakiem, aby zaimplementować pętle za pomocą skoków wstecz, ale nie ogranicza liczby iteracji pętli. W szczególnych, rzadkich przypadkach użycia, spreparowany program filtrujący może spowodować nieskończoną pętlę w interpretatorze.
- CVE-2026-6244Średnie
Interpretator BPF w libpcap dla instrukcji ALU 'div #k' i 'mod #k' nie sprawdza, czy wartość bezpośrednia jest zerowa. W szczególnych, rzadkich przypadkach użycia, spreparowany program filtrujący może spowodować dzielenie przez zero.
- CVE-2026-31912Średnie
Interpretator BPF w libpcap nie wykrywa ani osiągnięcia końca bufora programu filtrującego z powodu braku instrukcji return, ani wykonania instrukcji skoku z przesunięciem wskazującym poza bufor. W szczególnych, rzadkich przypadkach użycia, spreparowany program filtrujący może spowodować, że interpretator spróbuje odczytać pamięć procesu systemu operacyjnego w obszarze 32 GiB wokół bufora na architekturach 64-bitowych i w całej przestrzeni adresowej na architekturach 32-bitowych.
- CVE-2026-31911Średnie
Interpretator BPF w libpcap wywołuje funkcję abort(), jeśli napotka instrukcję BPF z nieprawidłowym kodem operacji. W szczególnych, rzadkich przypadkach użycia, spreparowany program filtrujący może zakończyć proces systemu operacyjnego.
- CVE-2026-18313Średnie
rpcapd może przydzielić do 65536 bajtów na każdą wiadomość RPCAP_MSG_UPDATEFILTER_REQ lub RPCAP_MSG_STARTCAP_REQ otrzymaną od klienta, ale nigdy nie zwalnia tej pamięci, więc wycieka pamięć nawet podczas normalnego użytkowania. Złośliwy klient może spowodować znacznie szybszy wyciek pamięci serwera.
- CVE-2026-18238Średnie
Kod klienta rpcap, który przetwarza wiadomość RPCAP_MSG_PACKET otrzymaną od serwera, nieprawidłowo waliduje jej nagłówki. Złośliwy serwer może wysłać spreparowaną wiadomość i spowodować, że klient potraktuje do 20 bajtów pamięci procesu klienta poza końcem bufora jako część przechwyconego pakietu.
- CVE-2011-1935Krytyczne
W pliku pcap-linux.c w libpcap 1.1.1 przed commit'em ea9432fabdf4b33cbc76d9437200e028f1c47c93, ustawienie snaplen może prowadzić do obcinania pakietów, co umożliwia zdalnym atakującym wysyłanie dowolnych danych bez wykrycia za pomocą spreparowanych pakietów.
Oryginalny opis (angielski, źródło NVD)
In BPF instructions that load/store a value from/to a scratch memory register the register index is an unsigned 32-bit integer and must not exceed 15, but libpcap BPF interpreter does not validate the value. In particular uncommon use cases a crafted filter program can cause the interpreter to try reading and writing the OS process memory in the 16GiB starting at the current stack frame on 64-bit architectures and in the entire address space on 32-bit architectures.

