CVE-2022-49030
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
W bibliotece libbpf w jądrze Linux wykryto problem z przepełnieniem rozmiaru podczas mapowania pamięci ringbuf. Maksymalny rozmiar ringbuf na hoście x86-64 wynosi 2 GB, więc podwojona wartość max_entries może przepełnić typ u32 podczas mapowania strony producenta i stron danych. Naprawa polega na rzutowaniu rozmiaru regionu mapowania tylko do odczytu na typ __u64 i sprawdzeniu, czy nie nastąpi przepełnienie podczas mmap.
Ocena ryzyka
Przepełnienie rozmiaru może prowadzić do nieprawidłowego mapowania pamięci, co może skutkować błędami działania aplikacji korzystających z ringbuf, a w skrajnych przypadkach do naruszenia integralności pamięci.
Rekomendacja
Zaleca się aktualizację jądra Linux do wersji zawierającej poprawkę dla CVE-2022-49030. Należy również unikać używania bardzo dużych rozmiarów ringbuf w aplikacjach 32-bitowych na 64-bitowych jądrach.
Inne podatności w libbpf
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: libbpf: Handle size overflow for ringbuf mmap The maximum size of ringbuf is 2GB on x86-64 host, so 2 * max_entries will overflow u32 when mapping producer page and data pages. Only casting max_entries to size_t is not enough, because for 32-bits application on 64-bits kernel the size of read-only mmap region also could overflow size_t. So fixing it by casting the size of read-only mmap region into a __u64 and checking whether or not there will be overflow during mmap.

