CVE-2026-52941
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w mechanizmie SMC (Shared Memory Communications). Punkt śledzenia (tracepoint) smc_msg_event bezwarunkowo wyłuskuje wskaźnik conn->lnk, który dla połączeń SMC-D jest NULL, co prowadzi do dereferencji pustego wskaźnika i awarii systemu (kernel panic) przy pierwszym wywołaniu sendmsg() lub recvmsg() na gnieździe SMC-D, gdy śledzenie jest włączone.
Ocena ryzyka
Atakujący z uprawnieniami użytkownika (bez roota) może wywołać awarię jądra przez utworzenie gniazda SMC-D i wykonanie operacji wejścia/wyjścia, gdy administrator włączył śledzenie (tracepoint). Prowadzi to do przerwania działania usług na serwerze (Denial of Service).
Rekomendacja
Należy niezwłocznie zastosować łatkę z jądra Linux w wersji zawierającej fix (commit w gałęzi net/smc). Jeśli łatka nie jest dostępna, tymczasowo wyłączyć śledzenie smc_msg_event lub ograniczyć możliwość tworzenia gniazd SMC-D przez nieuprzywilejowanych użytkowników.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint The smc_msg_event tracepoint class, shared by smc_tx_sendmsg and smc_rx_recvmsg, unconditionally dereferences smc->conn.lnk: __string(name, smc->conn.lnk->ibname) conn->lnk is only set for SMC-R; for SMC-D it is NULL. Other code on these paths already handles this (e.g. !conn->lnk in SMC_STAT_RMB_TX_SIZE_SMALL()). With the tracepoint enabled, the first sendmsg()/recvmsg() on an SMC-D socket crashes: Oops: general protection fault, probably for non-canonical address KASAN: null-ptr-deref in range [...] RIP: 0010:strlen+0x1e/0xa0 Call Trace: trace_event_raw_event_smc_msg_event (net/smc/smc_tracepoint.h:44) smc_rx_recvmsg (net/smc/smc_rx.c:515) smc_recvmsg (net/smc/af_smc.c:2859) __sys_recvfrom (net/socket.c:2315) __x64_sys_recvfrom (net/socket.c:2326) do_syscall_64 The faulting address 0x3e0 is offsetof(struct smc_link, ibname), confirming the NULL ->lnk deref. Enabling the tracepoint requires root, but the trigger itself is unprivileged: socket(AF_SMC, ...) has no capability check, and SMC-D negotiation needs no admin step on s390 or on x86 with the loopback ISM device loaded. Log an empty device name for SMC-D instead of dereferencing NULL.

