Aktywnie wykorzystywana w atakach
Linux Kernel Out-of-Bounds Read Vulnerability
Linux - Kernel · Figuruje w katalogu CISA KEV od 2025-04-09. Oznacza to potwierdzone ataki w środowisku produkcyjnym.
Wymagane działanie: Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
CVE-2024-53150
WysokieCVSS 7.1KEVStreszczenie
W jądrze Linux w sterowniku ALSA USB-audio nie sprawdzano pola bLength deskryptorów zegara podczas ich przeglądania, co przy błędnym deskryptorze o zbyt krótkiej długości mogło prowadzić do odczytów poza granicami bufora. Poprawka dodaje kontrole poprawności długości deskryptorów, w tym dodatkowe sprawdzenia dla deskryptora selektora zegara UAC2 i UAC3.
Ocena ryzyka
Podłączenie złośliwego lub wadliwego urządzenia USB audio może wywołać odczyty poza zakresem pamięci, co grozi awarią jądra (odmowa usługi), a potencjalnie może zostać wykorzystane do dalszych ataków.
Rekomendacja
Zaktualizować jądro Linux do wersji zawierającej poprawkę i unikać podłączania niezaufanych urządzeń USB audio do krytycznych systemów.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-93204Nieznane
W jądrze Linux moduł batman-adv aktualizował adresy MAC za pomocą zwykłego kopiowania, co mogło być częściowo widoczne dla równoległych czytelników. Czytelnik mógł przesłać do sieci niepełny adres MAC lub użyć go w odpowiedziach ARP, zatruwając pamięć podręczną ARP. Poprawka stosuje atomic64_t do przechowywania 48-bitowego adresu MAC, zapewniając, że czytelnik widzi albo stary, albo nowy adres, nigdy mieszankę.
- CVE-2026-93202Nieznane
W jądrze Linux występuje błąd w podsystemie I3C, polegający na rekurencyjnym zakładaniu blokady podczas rejestracji nowych urządzeń I3C. Funkcja i3c_master_register_new_i3c_devs() rejestruje urządzenia, trzymając blokadę i3c_bus_normaluse_lock(), a wywołanie device_register() może natychmiast uruchomić procedurę probe, która ponownie próbuje założyć tę samą blokadę, co prowadzi do zakleszczenia. Problem został rozwiązany poprzez rozdzielenie tworzenia i rejestracji urządzeń oraz użycie blokady konserwacyjnej.
- CVE-2026-93201Nieznane
W jądrze Linux moduł dm-pcache nie weryfikował identyfikatorów segmentów pamięci podręcznej przed użyciem ich do indeksowania w tablicy segments[]. Ponieważ metadane są chronione tylko przez CRC z publicznym ziarnem, atakujący z uprawnieniami CAP_SYS_ADMIN dostarczający urządzenie pamięci podręcznej może spowodować odczyty i zapisy poza zakresem. Poprawka dodaje walidację i odrzuca nieprawidłowe identyfikatory segmentów z błędem -EIO.
- CVE-2026-93200Nieznane
Podsystem I3C w jądrze Linux miał podatność use-after-free wskaźnika master->this. Wywołania zwrotne atrybutów sysfs używały tego wskaźnika po jego zwolnieniu, co powodowało naruszenie pamięci. Poprawka utrzymuje wskaźnik żywotność aż do momentu zwolnienia urządzenia i resetuje go na ścieżkach błędów.
- CVE-2026-93199Nieznane
W jądrze Linux funkcja i3c_master_search_i3c_dev_duplicate() wyszukująca duplikaty urządzeń I3C może błędnie dopasować samo urządzenie master (master->this), zwracając kontroler jako duplikat. Ponieważ kontroler nie jest urządzeniem docelowym, nie powinien być traktowany jako duplikat. Poprawka wyklucza master->this z dopasowania.
- CVE-2026-93198Nieznane
W jądrze Linux moduł dm-pcache nie waliduje łańcucha dirty_tail przy wczytywaniu. Złośliwy obraz, którego pola na nośniku są uwierzytelniane tylko przez crc32c ze stałym ziarnem, może wskazać dirty_tail na łańcuch ostatnich ksetów, który nigdy się nie kończy, powodując nieskończone ponowne uzbrajanie cache_writeback_fn(). Poprawka dodaje walidację łańcucha dirty_tail przy wczytywaniu z limitem przeskoków.
- CVE-2026-93197Nieznane
W jądrze Linux występuje błąd w mechanizmie memcg, w którym przy odłączaniu cgroup pamięci rozmiary LRU są kopiowane do rodzica zamiast być przenoszone, pozostawiając nieaktualne liczniki w dziecku. Powoduje to, że skaner LRU (lub MGLRU) odczytuje fałszywe rozmiary i wykonuje jałowe pętle skanowania na martwych cgroupach, co prowadzi do zawyżenia limitów i marnowania CPU. W jednym przypadku wykryto liczniki opisujące 476 GiB stron, czyli 1,89x więcej niż fizyczna pamięć hosta.
- CVE-2026-93196Nieznane
W jądrze Linux wykryto podatność use-after-free w sterowniku virtio_pmem dla pamięci trwałej NVDIMM. Problem występuje, gdy żądanie zostało już zwolnione przez nadawcę, ale jest jeszcze dostępne przez kolejkę virtqueue, co prowadzi do wybudzenia zwolnionej pamięci podczas przerwania.
- CVE-2026-93195Nieznane
W jądrze Linux sterownik drm/bridge synopsys dw-dp inicjalizuje i rejestruje kanał AUX DisplayPort podczas dw_dp_bind(), ale nigdy go nie wyrejestrowuje. Może to prowadzić do wycieków zasobów i/lub use-after-free. Poprawka dodaje brakującą funkcję dw_dp_unbind() umożliwiającą sprzątanie.
- CVE-2026-93194Nieznane
W jądrze Linux w sterowniku drm/rockchip (dw_dp) zasoby rdzeniowe, takie jak kanał AUX DisplayPort, są inicjalizowane i rejestrowane podczas dw_dp_bind(), ale nigdy nie są wyrejestrowywane. Prowadzi to do wycieków pamięci i/lub użycia po zwolnieniu (use-after-free), co widać w raporcie KASAN. Problem został rozwiązany poprzez użycie funkcji dw_dp_unbind() w callbacku unbind() komponentu oraz w ścieżce błędu bind().
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix out of bounds reads when finding clock sources The current USB-audio driver code doesn't check bLength of each descriptor at traversing for clock descriptors. That is, when a device provides a bogus descriptor with a shorter bLength, the driver might hit out-of-bounds reads. For addressing it, this patch adds sanity checks to the validator functions for the clock descriptor traversal. When the descriptor length is shorter than expected, it's skipped in the loop. For the clock source and clock multiplier descriptors, we can just check bLength against the sizeof() of each descriptor type. OTOH, the clock selector descriptor of UAC2 and UAC3 has an array of bNrInPins elements and two more fields at its tail, hence those have to be checked in addition to the sizeof() check.

