CVE-2026-89847
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
scsi: qla2xxx: Unikaj podwójnego zakończenia w przypadku asynchronicznego przekroczenia limitu czasu IOCB
qla2x00_async_iocb_timeout() próbuje przerwać asynchroniczny IOCB, który przekroczył limit czasu. Kiedy
qla24xx_async_abort_cmd() kończy się niepowodzeniem, zarówno ścieżka SRB_LOGIN_CMD, jak i
SRB_CTRL_VP/domyślne skanowanie ścieżki wybitne_cmds[] dla SRB, a następnie
wywołaj sp->done(sp, QLA_FUNCTION_TIMEOUT) bezwarunkowo, bez sprawdzania
czy SRB rzeczywiście został znaleziony i usunięty.
Jeśli odpowiedź ISR najpierw zakończy to samo dojście, usunie SRB
pod qp_lock_ptr i uruchamia sp->done() ->complete(sp->comp). The
zgłaszający qla24xx_control_vp() budzi się z funkcji Wait_for_completion(), czyści
sp->comp, usuwa odwołanie i wraca, odzyskując plik na stosie
ukończenie. Odniesienie do timera utrzymuje SRB przy życiu przez cały limit czasu
handler, ale nie stos osoby przesyłającej. Następnie następuje przerwa w sekundzie
sp->done() -> qla_ctrlvp_sp_done(), która ocenia „if (sp->comp)
ukończ(sp->komp)"; ze wskaźnikiem załadowanym przed wartością NULL nadawcy
store,complete() zapisuje w zwolnionej ramce stosu, co powoduje użycie po zwolnieniu.
Śledź, czy ta ścieżka usunęła SRB z zaległych_cmds i tylko
wywołaj funkcję sp->done(), gdy tak się stanie, aby polecenie zostało wykonane dokładnie raz
niezależnie od tego, która ścieżka jest jego właścicielem. Odzwierciedla to strażnika sp_found, którego już używano
qla24xx_abort_iocb_timeout().
>_ Referencje
- https://git.kernel.org/stable/c/6e217a9482eabbd8b29847be334c74cf468d3544
- https://git.kernel.org/stable/c/71a7b6e3c7f121439f51a058e53d4a8e05b63dec
- https://git.kernel.org/stable/c/7257b5e1fb6c9387714f66e01b79ec82b717eede
- https://git.kernel.org/stable/c/845d4abd92cd2f97551356c8b281ad6e197acb07
- https://git.kernel.org/stable/c/9fa1d71233a82416492d9c9de9756ebe140fe714
- https://git.kernel.org/stable/c/bb45bc4bd53c95a7bf6f782577b5ede94c0f8aa8
- https://git.kernel.org/stable/c/d6d856c722f40f0694ff755208552e658db6dd42
- https://git.kernel.org/stable/c/f5b660e0b0d9190d8853c795c2522cc5f8c93003
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