CVE-2026-89635
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ksmbd: przy trwałym ponownym połączeniu należy ponownie powiązać własną blokadę ponownie otwartego pliku
ksmbd_reopen_durable_fd() przegląda listę m_op_list i-węzła i ponownie wiąże
odłączony oplock do sesji ponownego łączenia:
list_for_each_entry_rcu(op, &ci->m_op_list, op_entry,
lockdep_is_held(&ci->m_lock)) {
jeśli (op->połącz)
kontynuować;
op->conn = ksmbd_conn_get(fp->conn);
op->sess = praca->sesja;
}
Jedynym kluczem jest op->conn == NULL, na którym znajduje się każdy odłączony trwały uchwyt
ten i-węzeł pasuje, a nie tylko ten należący do fp. Kiedy trwają dwie sesje
trwałe uchwyty na tym samym pilniku i oba rozłączają się, ponownie łącząc jeden z nich
przejmują oplock drugiej sesji: op->sess jest zastępowany przez
ponowne łączenie sesji bez odniesienia do niej, podczas gdy op->conn
spina połączenie.
Ścieżka rozbicia rodzeństwa, session_fd_check(), klucze tożsamości
połączenie jest zrywane (op->conn == conn), a nie udostępniane
stan i dlatego nie ma tego problemu.
Po zniszczeniu sesji adoptującej funkcja ksmbd_session_destroy() ją zwalnia
podczas gdy cudzoziemski oplock wciąż na to wskazuje. Czytelnik w
ksmbd_close_fd_app_instance_id() sprawdza tylko opinfo->conn, czyli
nadal żyje dzięki powyższemu odniesieniu, a następnie usuwa referencje
nieaktualna sesja:
if (!opinfo->conn) {
up_read(&fp->f_ci->m_lock);
wyjść;
}
ft = &opinfo->sess->file_table;
write_lock(&ft->lock);
BŁĄD: KASAN: użycie płyty po zwolnieniu w _raw_write_lock+0x74/0xd0
Wpisz rozmiar 4 pod adresem ffff88810a970528 za pomocą zadania kworker/0:0/9
Kolejka robocza: ksmbd-io handle_ksmbd_work
Zadzwoń do śledzenia:
_raw_write_lock+0x74/0xd0
ksmbd_close_fd_app_instance_id+0x183/0x410
smb2_open+0x1346/0x4430
handle_ksmbd_work+0x2bb/0x7b0
Osiągnięto z sesji uwierzytelnionej względem udziału z wartością domyślną
konfiguracja z trwałym uchwytem i oplockiem: dwie sesje otwierają ten sam plik
z uchwytem trwałym v2 i dzierżawą RH w ramach odrębnych identyfikatorów AppInstanceId,
obaj się wylogowują, jeden ponownie łączy się z DH2C, a później tworzy trwałą wersję v2
przenoszący inny AppInstanceId wchodzi do zwolnionej sesji.
Ogranicz pętlę do oplocka, którego właścicielem jest ponownie otwierany plik.
>_ 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