CVE-2026-53292
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 1 — wyżej niż 1% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w podsystemie Phonet, gdzie funkcja pn_socket_autobind() wywołuje BUG_ON() po nieudanym wiązaniu gniazda. Błąd występuje, gdy pn_socket_bind() zwraca -EINVAL z powodu nieprawidłowego stanu gniazda, a port pozostaje zerowy, co prowadzi do paniki jądra z poziomu użytkownika.
Ocena ryzyka
Atakujący może wywołać panikę jądra (kernel panic) poprzez wysłanie specjalnie spreparowanego żądania do gniazda Phonet, co prowadzi do odmowy usługi (DoS) dla całego systemu.
Rekomendacja
Należy natychmiast zaktualizować jądro Linux do wersji zawierającej poprawkę, która zastępuje BUG_ON() zwróceniem błędu -EINVAL. Sprawdź dostępność łatki dla swojej dystrybucji i zastosuj ją.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: net: phonet: do not BUG_ON() in pn_socket_autobind() on failed bind syzbot reported a kernel BUG triggered from pn_socket_sendmsg() via pn_socket_autobind(): kernel BUG at net/phonet/socket.c:213! RIP: 0010:pn_socket_autobind net/phonet/socket.c:213 [inline] RIP: 0010:pn_socket_sendmsg+0x240/0x250 net/phonet/socket.c:421 Call Trace: sock_sendmsg_nosec+0x112/0x150 net/socket.c:797 __sock_sendmsg net/socket.c:812 [inline] __sys_sendto+0x402/0x590 net/socket.c:2280 ... pn_socket_autobind() calls pn_socket_bind() with port 0 and, on -EINVAL, assumes the socket was already bound and asserts that the port is non-zero: err = pn_socket_bind(sock, ..., sizeof(struct sockaddr_pn)); if (err != -EINVAL) return err; BUG_ON(!pn_port(pn_sk(sock->sk)->sobject)); return 0; /* socket was already bound */ However pn_socket_bind() also returns -EINVAL when sk->sk_state is not TCP_CLOSE, even when the socket has never been bound and pn_port() is still 0. In that case the BUG_ON() fires and panics the kernel from a user-triggerable path. Treat the "bind returned -EINVAL but pn_port() is still 0" case as a regular error and propagate -EINVAL to the caller instead of crashing. Existing callers already translate a non-zero return from pn_socket_autobind() into -ENOBUFS/-EAGAIN, so returning -EINVAL here only changes behaviour from panic to a normal errno.

