Katalog CVE

CVE-2024-36489

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.26%

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

Streszczenie

W jądrze Linux w funkcji tls_init() brakuje bariery pamięci, co może powodować odwołanie do wskaźnika NULL w tls_{setsockopt,getsockopt} z powodu zmiany kolejności zapisów. Naprawiono poprzez użycie rcu_assign_pointer() po inicjalizacji ctx->sk_proto.

Ocena ryzyka

Może prowadzić do awarii jądra (null-ptr-deref) i odmowy usługi (DoS) w systemach korzystających z TLS.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę dla CVE-2024-36489.

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: tls: fix missing memory barrier in tls_init In tls_init(), a write memory barrier is missing, and store-store reordering may cause NULL dereference in tls_{setsockopt,getsockopt}. CPU0 CPU1 ----- ----- // In tls_init() // In tls_ctx_create() ctx = kzalloc() ctx->sk_proto = READ_ONCE(sk->sk_prot) -(1) // In update_sk_prot() WRITE_ONCE(sk->sk_prot, tls_prots) -(2) // In sock_common_setsockopt() READ_ONCE(sk->sk_prot)->setsockopt() // In tls_{setsockopt,getsockopt}() ctx->sk_proto->setsockopt() -(3) In the above scenario, when (1) and (2) are reordered, (3) can observe the NULL value of ctx->sk_proto, causing NULL dereference. To fix it, we rely on rcu_assign_pointer() which implies the release barrier semantic. By moving rcu_assign_pointer() after ctx->sk_proto is initialized, we can ensure that ctx->sk_proto are visible when changing sk->sk_prot.

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