Katalog CVE

CVE-2026-43185

KrytyczneCVSS 9.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Podwyższone ryzyko
0.83%

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

Streszczenie

W module ksmbd jądra Linux występuje błąd znaku (signedness) w funkcji smb_direct_prepare_negotiation(). Wartość preferred_send_size jest rzutowana na int przed obliczeniem min_t(int, ...), więc złośliwa wartość 0x80000000 zostaje uznana za mniejszą niż max_recv_size i ustawiona jako maksymalny dozwolony rozmiar odbioru. Poprzez wysłanie drugiej wiadomości o dużym rozmiarze (>1420 bajtów) atakujący może doprowadzić do przepełnienia bufora na stercie.

Ocena ryzyka

Podatność może pozwolić zdalnemu atakującemu na przepełnienie bufora sterty w jądrze, co grozi wykonaniem kodu lub destabilizacją systemu. Dotyczy serwerów udostępniających pliki przez SMB z włączonym ksmbd.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę zamieniającą min_t(int, ...) na min_t(u32). Do czasu wdrożenia aktualizacji rozważ ograniczenie dostępu do usługi SMB.

Inne podatności w Linux kernel (ksmbd)

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

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix signededness bug in smb_direct_prepare_negotiation() smb_direct_prepare_negotiation() casts an unsigned __u32 value from sp->max_recv_size and req->preferred_send_size to a signed int before computing min_t(int, ...). A maliciously provided preferred_send_size of 0x80000000 will return as smaller than max_recv_size, and then be used to set the maximum allowed alowed receive size for the next message. By sending a second message with a large value (>1420 bytes) the attacker can then achieve a heap buffer overflow. This fix replaces min_t(int, ...) with min_t(u32)

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