Katalog CVE

CVE-2026-99201

Niskie ryzyko· EPSS 5%
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

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

Streszczenie

W jądrze Linux naprawiono podatność w podsystemie netlink, gdzie klucz tablicy rhashtable zawierał surowy wskaźnik struct net oraz kontrolowany przez użytkownika port ID. Poprzez wielokrotne wiązanie i odwiązywanie wybranych portów NETLINK_USERSOCK nieuprzywilejowany czytelnik mógł odzyskać dolne bity hasha Jenkinsa, a następnie wyszukać offline adres init_net. Rozwiązaniem jest użycie unikalnego, niebędącego adresem net_cookie przestrzeni nazw w kluczu porównania.

Ocena ryzyka

Podatność pozwala nieuprzywilejowanemu użytkownikowi na obejrzenie układu kubełków tablicy netlink i częściowe odzyskanie adresu init_net, co może ułatwić obejście mechanizmów ochrony jądra (np. KASLR). Stanowi to ryzyko eskalacji uprawnień lub dalszych ataków na jądro.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę (zmiana jest łatwa do backportu do v5.15 i nowszych). Jeśli aktualizacja nie jest możliwa, ogranicz dostęp nieuprzywilejowanych użytkowników do gniazd NETLINK_USERSOCK i monitoruj podejrzane działania.

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: netlink: avoid hashing the network namespace pointer The netlink rhashtable key includes a raw struct net pointer and a user-controlled port ID. Both /proc/net/netlink and socket diagnostics expose the table's bucket order. By binding and rebinding chosen NETLINK_USERSOCK port IDs, an unprivileged reader can distinguish equal buckets and recover the low bits of the Jenkins hash. Its 32-bit seed and the limited set of kernel-image slides can then be searched offline to recover the address of init_net. Use the namespace's unique, non-address net_cookie in the comparison key instead. It is assigned before the per-net initializers run and remains unchanged for the namespace's lifetime. The lookup key and object hash are still built by netlink_compare_arg_init(), keeping lookup, insertion, removal and rehashing consistent while preserving namespace separation. Neither public table walker needs to change. Reading the socket's namespace cookie in netlink_compare() is safe under RCU, including during namespace teardown. netlink_release() removes the socket from the hash table and defers its final put with call_rcu(). cleanup_net() runs the per-net exit methods and waits for outstanding RCU callbacks with rcu_barrier() before freeing namespace storage. Unlike ns.ns_id, net_cookie is also available and initialized during setup_net() in older stable kernels, making the change straightforward to backport to v5.15 and later.

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