Odebrany

CVE-2026-98509

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

drm/virtio: napraw wyciek pamięci zdarzenia ogrodzenia w przypadku awarii bufora wykonawczego

virtio_gpu_execbuffer_ioctl() rezerwuje zdarzenie DRM za pomocą
drm_event_reserve_init(), gdy VIRTGPU_EXECBUF_RING_IDX wybiera pierścień, który
przestrzeń użytkownika umożliwiła odpytywanie dla. robi to virtio_gpu_init_submit().
przed uchwytami BO, bufor poleceń, tablice syncobj i plik
in-fence są przetwarzane, więc każda późniejsza ścieżka błędu jest uruchamiana wraz ze zdarzeniem
już oczekujące, w tym zwykłe błędy sprawdzania poprawności argumentów, takie jak
nieprawidłowy bo_handle lub in-syncobj, który nie zawiera ogrodzenia.

Na tych ścieżkach virtio_gpu_cleanup_submit() usuwa ogrodzenie bez
odwołanie wydarzenia. Ogrodzenie zostaje uwolnione, choć nigdy nie zostało wyemitowane,
zabierając ze sobą jedyny wskaźnik po stronie kierowcy do zdarzenia. Zamknięcie DRM
plik nie pomaga. drm_events_release() rozłącza oczekujące zdarzenia, ale
celowo pozostawia zwolnienie późniejszej funkcji drm_send_event(),
który nigdy nie działa w przypadku osieroconego zdarzenia, więc alokacja wycieka
na stałe.

Znalezione podczas fuzzowania sterownika virtio za pomocą Syzkallera:

BŁĄD: wyciek pamięci
obiekt bez odniesienia 0xffff88802c176e80 (rozmiar 96):
comm "syz.1.367", pid 10561, jiffies 4294960122
zrzut szesnastkowy (pierwsze 32 bajty):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............
c8 6e 17 2c 80 88 ff ff 00 00 00 00 00 00 00 00 .n.,...........
ślad wsteczny (crc e1973c6b):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [w linii]
płyta_post_alloc_hook mm/slub.c:4597 [w linii]
płyta_alloc_node mm/slub.c:4917 [w linii]
__kmalloc_cache_noprof+0x49d/0x6f0 mm/slub.c:5485
_kmalloc_noprof include/linux/slab.h:988 [w linii]
_kzalloc_noprof include/linux/slab.h:1309 [w linii]
virtio_gpu_fence_event_create sterowniki/gpu/drm/virtio/virtgpu_submit.c:282 [inline]
virtio_gpu_init_submit sterowniki/gpu/drm/virtio/virtgpu_submit.c:398 [inline]
virtio_gpu_execbuffer_ioctl+0xbbf/0x1aa0 sterowniki/gpu/drm/virtio/virtgpu_submit.c:505
drm_ioctl_kernel+0x1f4/0x3e0 sterowniki/gpu/drm/drm_ioctl.c:817
drm_ioctl+0x5f4/0xc70 sterowniki/gpu/drm/drm_ioctl.c:914
vfs_ioctl fs/ioctl.c:51 [w linii]
__do_sys_ioctl fs/ioctl.c:597 [w linii]
__se_sys_ioctl fs/ioctl.c:583 [w linii]
__x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [wbudowane]
do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94
wpis_SYSCALL_64_after_hwframe+0x77/0x7f

Napraw, anulując i zwalniając zdarzenie DRM na ścieżce błędów bufora wykonawczego
przed opuszczeniem płotu. Po zakończeniu wyczyść wskaźnik zdarzenia ogrodzenia
anulowanie, aby nie zachowywał wiszącego wskaźnika.

>_ 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