CVE-2026-90307
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
RDMA/srp: napraw wyciek informacji o stercie w skróconym pliku SRP_CRED_REQ
srp_recv_done() przekazuje wc->byte_len do srp_process_rsp(). To mija
nic do srp_process_cred_req() i srp_process_aer_req(), które czytają
pola o stałym rozmiarze z bufora odbiorczego bez sprawdzania, czy te
otrzymano pola.
Rozmiar bufora wynosi max_ti_iu_len i pochodzi z odpowiedzi logowania
i nie jest zweryfikowany. Cel, który reklamuje 8, a następnie wysyła
8-bajtowy SRP_CRED_REQ powoduje, że inicjator odczytuje znacznik req->spoza
koniec bufora. req->tag jest kopiowany do SRP_CRED_RSP i wysyłany
z powrotem, aby te bajty dotarły do celu. SRP_AER_REQ zachowuje się w ten sam sposób
i czyta także req->lun.
Wyciek wynosi 8 bajtów na odpowiedź. max_ti_iu_len decyduje również, która płyta
cache, z którego pochodzi bufor. Przy 8 buforem jest obiekt kmalloc-8 i
odczyt jest całkowicie poza nim:
BŁĄD: KASAN: płyta poza granicami w srp_recv_done+0x172b/0x1aa0
Odczytaj rozmiar 8 pod adresem ffff888104714da8 przez zadanie kworker/u8:3/50
który należy do pamięci podręcznej kmalloc-8 o rozmiarze 8
Błędny adres znajduje się 0 bajtów na prawo od
przydzielony region 8-bajtowy [ffff888104714da0, ffff888104714da8)
Bez KASAN zwrócone bajty są tym, co będzie następne na płycie. Jeden
run zwróciło „.strtab”.
rsp->data[3] w srp_process_rsp() ma ten sam problem: tylko
resp_data_len jest sprawdzany przed odczytaniem.
Upuść żądanie, które jest krótsze niż analizowana struktura i
sprawdź byte_len przed odczytem tsk_mgmt.
>_ Referencje
- https://git.kernel.org/stable/c/001adf2fe87d1ab677c014a97467bbea5153ae5f
- https://git.kernel.org/stable/c/0e7ba617514902501514d577647d866e670dad90
- https://git.kernel.org/stable/c/138eb2f0ef02adfe6ad126afad5b54c56b5046ee
- https://git.kernel.org/stable/c/3787f4c3e0d813d6c56be9f6dfaf66f8551fb0a7
- https://git.kernel.org/stable/c/3f7fdf561f1ec3b523c39708df00bd808671668d
- https://git.kernel.org/stable/c/961ac0f0c5e414abdd6b33fae84b311d9fde0bd0
- https://git.kernel.org/stable/c/dc2272c00d7c00ee2a69b57f7ca9caaefcbdb8cd
- https://git.kernel.org/stable/c/fa1b33fdab3e79dce83721ead3220200a2dbec22
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