Odebrany

CVE-2026-93231

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

lockd: napraw zamienione argumenty w nlmsvc_match_ip()

Podczas zwalniania blokad według adresu IP serwera poprzez /proc/fs/nfsd/unlock_ip,
nlmsvc_unlock_all_by_ip() wywołuje nlm_traverse_files() z serwerem
sockaddr jako nieprzezroczysty argument @data:

nlm_traverse_files(adres_serwera, nlmsvc_match_ip, NULL);

Wywołanie zwrotne dopasowania jest później wywoływane z funkcji nlm_traverse_locks() jako:

mecz(host blokady, host);

gdzie pierwszym argumentem jest nlm_host będący właścicielem blokady, a
drugim argumentem jest @data, która została pierwotnie przekazana (tutaj
adres serwera). Jest to konwencja co innego wywołania zwrotnego dopasowania
opiera się na (nlmsvc_mark_host(), nlmsvc_same_host(), nlmsvc_is_client()):
arg1 to prawdziwy nlm_host, arg2 to wartość referencyjna podana przez rozmówcę.

Od czasu nlmsvc_match_ip() te dwa argumenty są odwracane
funkcja odblokowania przez IP została wprowadzona w zatwierdzeniu 4373ea84c84d („lockd:
odblokuj zablokowane blokady powiązane z danym IP serwera”):

zwróć rpc_cmp_addr(nlm_srcaddr(host), datap);

Tutaj @host jest w rzeczywistości sockaddr serwera, więc nlm_srcaddr(host)
dereferuje strukturę sockaddr jako strukturę nlm_host i odczytuje śmieci
na przesunięciu h_srcaddr; tymczasem @datap jest właściwie blokadą
właściciela nlm_host, ale jest porównywany jako sockaddr. W rezultacie
porównanie praktycznie nigdy nie pasuje, a blokady nie są zwalniane dla
żądane IP.

Zamień argumenty, aby porównać adres źródłowy właściciela blokady
względem żądanego adresu serwera:

return rpc_cmp_addr(nlm_srcaddr(datap), (struct sockaddr *)host);

[ cel: popraw także wprowadzające w błąd nazwy parametrów typedef ]

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org