CVE-2026-89449
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
iommu: Napraw wyciek pamięci dev_iommu, gdy urządzenie_add nie powiedzie się w iommu_mock_device_add
iommu_mock_device_add() najpierw wywołuje iommu_fwspec_init(), która
sukces przydziela zarówno dev->iommu (poprzez dev_iommu_get()), jak i
dev->iommu->fwspec. Jeśli kolejne wywołanie urządzenia_add(dev) nie powiedzie się,
ścieżka błędu wywołuje tylko iommu_fwspec_free(dev), co zwalnia
fwspec, ale pozostawia dev->iommu nadal przydzielone.
Powoduje to wyświetlenie następującego raportu kmemleak podczas fuzzowania z Syzkallerem:
BŁĄD: wyciek pamięci
obiekt bez odniesienia 0xffff888011e0a200 (rozmiar 192):
comm "syz.1.1695", pid 24885, jiffies 4295222527
zrzut szesnastkowy (pierwsze 32 bajty):
00 00 00 00 00 00 00 00 00 00 00 00 ad 4e ad de .............N..
ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff ff .............
śledzenie wsteczne (crc 25df5bb3):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [w linii]
płyta_post_alloc_hook mm/slub.c:4575 [w linii]
płyta_alloc_node mm/slub.c:4899 [w linii]
__kmalloc_cache_noprof+0x47a/0x710 mm/slub.c:5415
kmalloc_noprof include/linux/slab.h:950 [w linii]
kzalloc_noprof include/linux/slab.h:1188 [w linii]
dev_iommu_get+0x10c/0x1a0 sterowniki/iommu/iommu.c:408
iommu_fwspec_init+0x288/0x4d0 sterowniki/iommu/iommu.c:3087
iommu_mock_device_add+0x46/0xb0 sterowniki/iommu/iommu.c:385
mock_dev_create sterowniki/iommu/iommufd/selftest.c:1025 [inline]
iommufd_test_mock_domain sterowniki/iommu/iommufd/selftest.c:1066 [inline]
iommufd_test+0x2f8a/0x6190 sterowniki/iommu/iommufd/selftest.c:2072
iommufd_fops_ioctl+0x367/0x540 sterowniki/iommu/iommufd/main.c:533
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 to, wywołując dev_iommu_free(dev) zamiast iommu_fwspec_free(dev)
w ścieżce błędu urządzenia_add(). dev_iommu_free() zwalnia oba fwspec
i zewnętrzną strukturę dev_iommu i czyści dev->iommu.
>_ 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