Podatność w sterowniku ksmbd jądra Linux umożliwia zdalnym, nieuwierzytelnionym atakującym wywołanie przepełnienia bufora na stercie (heap buffer overflow) poprzez spreparowane pakiety negocjacji SMB Direct. Krytyczny poziom CVSS 9.8 wynika z pełnej dostępności sieciowej bez wymaganych uprawnień ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
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)
Funkcja smb_direct_prepare_negotiation() nieprawidłowo rzutuje wartości bez znaku (__u32) — sp->max_recv_size oraz req->preferred_send_size — na typ ze znakiem (int) przed wywołaniem min_t(int, ...). Atakujący może przesłać pole preferred_send_size o wartości 0x80000000, która po interpretacji jako liczba ze znakiem jest traktowana jako ujemna, czyli mniejsza niż max_recv_size. Powoduje to ustawienie zbyt małego limitu maksymalnego rozmiaru odbieranej wiadomości. Następnie wysyłając drugi pakiet o rozmiarze przekraczającym 1420 bajtów, atakujący wyzwala heap buffer overflow. Poprawka zastępuje min_t(int, ...) wywołaniem min_t(u32, ...), eliminując błąd znaku.
Atakujący może doprowadzić do heap buffer overflow w kontekście jądra systemu operacyjnego, co potencjalnie umożliwia zdalne wykonanie kodu (RCE), eskalację uprawnień (privilege escalation) lub destabilizację systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawki zostały opublikowane w repozytorium stabilnych gałęzi jądra Linux (commity: 55abc475d096, 6b4f875aac34, ceae058eb707). Zaleca się aktualizację jądra do wersji zawierającej wymienione poprawki. Jako tymczasowe obejście można rozważyć wyłączenie modułu ksmbd, jeśli SMB Direct nie jest wymagany w środowisku.
Jądro Linux z aktywnym modułem ksmbd (obsługa protokołu SMB Direct/RDMA); wersje wskazane w referencjach producenta (commitach stabilnych gałęzi jądra)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux Kernel
OSLinux7.05.15 – 6.18.16 (bez)6.19 – 6.19.6 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
IBM Aspera Faspex 4.4.2 Patch Level 1 and earlier could allow a remote attacker to execute arbitrary code on t...
VMware Workspace ONE Access and Identity Manager contain a remote code execution vulnerability due to server-s...
VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector address have a...