CVE-2026-97952
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
sunvdc: odmapuj pliki cookie LDC, gdy wysłanie deskryptora nie powiedzie się
__send_request() mapuje strony żądania na mapę kanału LDC
table (ldc_map_sg()), wypełnia deskryptor i zaznacza go
VIO_DESC_READY przed zadzwonieniem do drzwi za pomocą __vdc_tx_trigger().
Gdy wyzwalacz nie powiedzie się, ścieżka błędu wyświetla jedynie komunikat: the
deskryptor pozostaje GOTOWY, a pliki cookie nigdy nie są usuwane z mapowania. The
mapowanie jest zwykle udostępniane w vdc_end_one() po zakończeniu połączenia równorzędnego
deskryptor - ale deskryptor, do którego dzwonek nigdy nie został wysłany, będzie
nigdy nie jest ukończony, a ponieważ dr->prod nie jest zaawansowany w przypadku niepowodzenia, plik
resetuj ścieżkę (vdc_requeue_inflight(), która prowadzi [cons, prod)) nigdy
też to odwiedza. Wpisy w tabeli map wyciekły trwale.
Od czasu zatwierdzenia a11f6ca9aef9 („sunvdc: Nie kręć w nieskończonej pętli
kiedy vio_ldc_send() zwraca EAGAIN”), występują błędy wyzwalania
ćwicz pod obciążeniem, więc każdy wynikowy błąd we/wy również powoduje wyciek
wartość żądanych wpisów ze stałego rozmiaru (8192 wpisów na
kanał) tabela map. Ponieważ alokator rozdaje ciągłe
zakresach, fragmentacja powoduje, że duże żądania wielosegmentowe kończą się niepowodzeniem w pierwszej kolejności
w miarę wyczerpywania się tabeli, aż do trwałego niepowodzenia funkcji ldc_map_sg() i
dysk jest martwy aż do ponownego uruchomienia.
Sprawia to również, że odzyskiwanie oparte na ponawianiu prób staje się bezużyteczne: ponowne kolejkowanie pliku
request on -EAGAIN ponownie mapuje strony przy każdej próbie, nadpisując
desc->cookies i osierocenie poprzedniego mapowania, więc tabela
wyczerpuje się z częstotliwością ponownych prób. Jest to zaobserwowane wyczerpanie pamięci
kiedy po raz pierwszy przetestowano metodę ponownego kolejkowania w październiku 2025 r.
Przywróć w przypadku niepowodzenia: usuń mapowanie plików cookie, zaznacz deskryptor ZA DARMO
ponownie i usuń wpis żądania. Jeśli wyzwalacz nie powiódł się z
-ENOTCONN, __vdc_tx_trigger() już zresetował port, który
niszczy i ponownie przydziela zarówno kanał dring, jak i LDC
łącznie z tabelą map - nie ma nic do przywrócenia i jest nieaktualna
deskryptora nie wolno dotykać.
>_ 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