CVE-2024-36909
KrytyczneCVSS 9.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa w sterowniku vmbus (Drivers: hv) wykryto problem polegający na zwalnianiu buforów pierścieniowych, które nie mogły zostać ponownie zaszyfrowane. W maszynach wirtualnych CoCo nieufny host może spowodować niepowodzenie funkcji set_memory_encrypted() lub set_memory_decrypted(), co skutkuje zwróceniem błędu i pozostawieniem pamięci jako współdzielonej. Kod buforów pierścieniowych VMBus mógł zwalniać odszyfrowane (współdzielone) strony, jeśli set_memory_decrypted() zawiedzie. Poprawka sprawdza pole decrypted w strukturze vmbus_gpadl dla buforów pierścieniowych, aby zdecydować, czy zwolnić pamięć.
Ocena ryzyka
Zwalnianie odszyfrowanej pamięci może prowadzić do naruszenia poufności lub integralności danych, ponieważ współdzielona pamięć może być dostępna dla nieufnego hosta, co może umożliwić ataki.
Rekomendacja
Zaleca się aktualizację jądra Linuxa do wersji zawierającej poprawkę dla CVE-2024-36909, która zapobiega zwalnianiu buforów pierścieniowych, które nie mogły zostać ponownie zaszyfrowane.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted In CoCo VMs it is possible for the untrusted host to cause set_memory_encrypted() or set_memory_decrypted() to fail such that an error is returned and the resulting memory is shared. Callers need to take care to handle these errors to avoid returning decrypted (shared) memory to the page allocator, which could lead to functional or security issues. The VMBus ring buffer code could free decrypted/shared pages if set_memory_decrypted() fails. Check the decrypted field in the struct vmbus_gpadl for the ring buffers to decide whether to free the memory.

