CVE-2026-98694
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
piorun: Napraw zgłaszane przez KASAN użycie po zwolnieniu, gdy żądanie zostanie anulowane
Alan poinformował, że podczas wykonywania testów warunków skrajnych czasami KASAN to zauważa
bez użycia podczas działania kanału sterującego (oszczędne utrzymanie
odpowiednie fragmenty):
BŁĄD: KASAN: użycie płyty po zwolnieniu w tb_cfg_request_sync+0x240/0x250 [thunderbolt]
Odczytaj rozmiar 24 pod adresem ffff88811067f290 przez zadanie kworker/u40:2/1760
<ZADANIE>
tb_cfg_request_sync+0x240/0x250 [piorun]
tb_cfg_read_raw+0x367/0x510 [piorun]
tb_cfg_read+0xec/0x240 [piorun]
tb_port_get_link_generacja+0x258/0x420 [piorun]
tb_usb3_consumed_bandwidth+0x1c1/0x2c0 [piorun]
tb_tunnel_consumed_bandwidth+0xfd/0x910 [piorun]
tb_available_bandwidth+0x5f2/0xeb0 [piorun]
tb_recalc_estimated_bandwidth+0x2a0/0x1bc0 [piorun]
tb_handle_dp_bandwidth_request+0x1897/0x5e20 [piorun]
proces_one_work+0x675/0x1230
wątek_pracownika+0x5e6/0xf70
kwątek+0x365/0x470
ret_from_fork+0x54d/0x710
ret_from_fork_asm+0x1a/0x30
</ZADANIE>
Przydzielone przez zadanie 1760:
__kmalloc_cache_noprof+0x1ee/0x550
tb_cfg_read_raw+0x1d3/0x510 [piorun]
tb_cfg_read+0xec/0x240 [piorun]
tb_port_get_link_generacja+0x258/0x420 [piorun]
tb_usb3_consumed_bandwidth+0x1c1/0x2c0 [piorun]
tb_tunnel_consumed_bandwidth+0xfd/0x910 [piorun]
tb_available_bandwidth+0x5f2/0xeb0 [piorun]
tb_recalc_estimated_bandwidth+0x2a0/0x1bc0 [piorun]
tb_handle_dp_bandwidth_request+0x1897/0x5e20 [piorun]
proces_one_work+0x675/0x1230
wątek_pracownika+0x5e6/0xf70
kwątek+0x365/0x470
ret_from_fork+0x54d/0x710
ret_from_fork_asm+0x1a/0x30
Uwolniony przez zadanie 926:
kfree+0x18f/0x4a0
tb_cfg_request_put+0xb7/0xe0 [piorun]
tb_cfg_request_work+0x82/0x120 [piorun]
proces_one_work+0x675/0x1230
wątek_pracownika+0x5e6/0xf70
kwątek+0x365/0x470
ret_from_fork+0x54d/0x710
ret_from_fork_asm+0x1a/0x30
Przedostatnie potencjalnie powiązane tworzenie pracy:
__queue_work+0x575/0xd00
kolejka_work_on+0x77/0x80
tb_cfg_request_cancel+0xc7/0x260 [piorun]
tb_cfg_request_sync+0x1f6/0x250 [piorun]
tb_cfg_read_raw+0x367/0x510 [piorun]
tb_cfg_read+0xec/0x240 [piorun]
tb_port_get_link_generacja+0x258/0x420 [piorun]
tb_usb3_consumed_bandwidth+0x1c1/0x2c0 [piorun]
tb_tunnel_consumed_bandwidth+0xfd/0x910 [piorun]
tb_available_bandwidth+0x5f2/0xeb0 [piorun]
tb_recalc_estimated_bandwidth+0x2a0/0x1bc0 [piorun]
tb_handle_dp_bandwidth_request+0x1897/0x5e20 [piorun]
proces_one_work+0x675/0x1230
wątek_pracownika+0x5e6/0xf70
kwątek+0x365/0x470
ret_from_fork+0x54d/0x710
ret_from_fork_asm+0x1a/0x30
Ostatni ślad stosu jest pomocny, ponieważ pokazuje, że anulujemy
żądanie i patrząc na tb_cfg_request_cancel() może się zdarzyć
które tb_cfg_request_work() kończy się tuż przed tb_cfg_request_cancel()
zostanie uruchomiony i z tego powodu wywoła funkcję Schedule_work() ustawiającą kolejkę
ta sama praca, aby ponownie uruchomić. Jednak został już usunięty z
request_queue i liczba odwołań są usuwane, więc kiedy
tb_cfg_request_work() uruchomi się ponownie, to znaczy uzyska dostęp do pamięci
już wydany.
Napraw to, abyśmy najpierw upewnili się, że anulowane żądanie nie zostało przekazane
z dala od tb_cfg_request_find() lub zaplanowane uruchomienie. Następnie zamiast
polegając na pracowniku, który upora się z żądaniem, w którym to zrobimy
tb_cfg_request_cancel() po anulowaniu wykonywania pracy. Zrób
tb_cfg_request_dequeue() zwalnia żądanie tylko wtedy, gdy faktycznie takie było
usunięty z kolejki.
>_ 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