Katalog CVE

CVE-2026-99266

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W io_uring zcrx funkcja io_zcrx_queue_cqe() oblicza przesunięcie bufora w obszarze na podstawie net_iov_idx(), które jest typu unsigned int, więc przesunięcie jest wykonywane w 32 bitach, a dopiero wynik jest rozszerzany do u64 w CQE. Obszar może mieć do 1 TB, więc dla każdego niov powyżej pierwszych 4 GB CQE wskazuje aplikacji bufor o 4 GB (lub wielokrotność) poniżej właściwego. Aplikacja czyta złe dane i zwraca bufor, którego nie posiada, przez kolejkę uzupełnień, podczas gdy prawdziwy nigdy nie jest zwracany.

Ocena ryzyka

Może prowadzić do odczytu nieprawidłowych danych i wycieku/nieprawidłowego zarządzania buforami w aplikacjach korzystających z io_uring zcrx na obszarach powyżej 4 GB. Możliwe błędy danych i wycieki pamięci.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką. Unikaj używania obszarów zcrx powyżej 4 GB do czasu aktualizacji.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: io_uring/zcrx: fix buffer offsets in areas above 4GB io_zcrx_queue_cqe() computes the offset of the buffer in its area from net_iov_idx(), which is an unsigned int, so the shift is done in 32 bits and only the result is widened to the u64 that goes into the CQE. An area can be up to 1TB in size. For every niov beyond the first 4GB the CQE points the application at a buffer 4GB, or a multiple of that, below the one which has the data. It reads the wrong data, and then returns a buffer it doesn't own via the refill queue while the real one is never given back.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS