Katalog CVE

CVE-2026-45870

ŚrednieCVSS 5.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

Percentyl 6 - wyżej niż 6% wszystkich znanych CVE

Streszczenie

W jądrze Linux wykryto wycieki pamięci w funkcjach dekodowania XDR w module auth_gss protokołu SUNRPC. Funkcje gssx_dec_ctx(), gssx_dec_status() i gssx_dec_name() alokują pamięć przez gssx_dec_buffer(), ale nie zwalniają jej w przypadku błędu kolejnego dekodowania, co prowadzi do wycieków. Szczególnie krytyczny jest wyciek w gssx_dec_ctx(), gdzie wywołujący inicjalizuje pola długości buforów wartościami niezerowymi, co wymusza alokację pamięci.

Ocena ryzyka

Wycieki pamięci mogą prowadzić do wyczerpania dostępnej pamięci systemowej, co skutkuje degradacją wydajności lub awarią systemu, szczególnie przy długotrwałym działaniu lub intensywnym użyciu uwierzytelniania GSS-API.

Rekomendacja

Należy niezwłocznie zaaplikować łatkę z jądra Linux zawierającą poprawkę dodającą obsługę błędów z czyszczeniem (goto-based cleanup) w funkcjach gssx_dec_ctx(), gssx_dec_status() i gssx_dec_name(), aby zwalniać wcześniej zaalokowane bufory przed zwróceniem błędu.

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

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: auth_gss: fix memory leaks in XDR decoding error paths The gssx_dec_ctx(), gssx_dec_status(), and gssx_dec_name() functions allocate memory via gssx_dec_buffer(), which calls kmemdup(). When a subsequent decode operation fails, these functions return immediately without freeing previously allocated buffers, causing memory leaks. The leak in gssx_dec_ctx() is particularly relevant because the caller (gssp_accept_sec_context_upcall) initializes several buffer length fields to non-zero values, resulting in memory allocation: struct gssx_ctx rctxh = { .exported_context_token.len = GSSX_max_output_handle_sz, .mech.len = GSS_OID_MAX_LEN, .src_name.display_name.len = GSSX_max_princ_sz, .targ_name.display_name.len = GSSX_max_princ_sz }; If, for example, gssx_dec_name() succeeds for src_name but fails for targ_name, the memory allocated for exported_context_token, mech, and src_name.display_name remains unreferenced and cannot be reclaimed. Add error handling with goto-based cleanup to free any previously allocated buffers before returning an error.

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