CVE-2026-46141 in Linux
요약
\~에 의해 VulDB • 2026. 05. 29.
리눅스 커널에서 다음 취약점이 해결되었습니다:
powerpc/xive: 잘못된 chip_data 조회로 인한 kmemleak 수정
kmemleak은 다음과 같은 메모리 누수를 보고합니다:
미사용 객체 0xc0000002a7fbc640 (크기 64): comm "kworker/8:1", pid 540, jiffies 4294937872 16진수 덤프 (첫 32바이트): 01 00 00 00 00 00 00 00 00 00 09 04 00 04 00 00 ................ 00 00 a7 81 00 00 0a c0 00 00 08 04 00 04 00 00 ................ 백트레이스 (crc 177d48f6): __kmalloc_cache_noprof+0x520/0x730 xive_irq_alloc_data.constprop.0+0x40/0xe0 xive_irq_domain_alloc+0xd0/0x1b0 irq_domain_alloc_irqs_parent+0x44/0x6c pseries_irq_domain_alloc+0x1cc/0x354 irq_domain_alloc_irqs_parent+0x44/0x6c msi_domain_alloc+0xb0/0x220 irq_domain_alloc_irqs_locked+0x138/0x4d0 __irq_domain_alloc_irqs+0x8c/0xfc __msi_domain_alloc_irqs+0x214/0x4d8 msi_domain_alloc_irqs_all_locked+0x70/0xf8 pci_msi_setup_msi_irqs+0x60/0x78 __pci_enable_msix_range+0x54c/0x98c pci_alloc_irq_vectors_affinity+0x16c/0x1d4 nvme_pci_enable+0xac/0x9c0 [nvme]
nvme_probe+0x340/0x764 [nvme]
이 문제는 NVMe 장치에 대해 MSI-X 벡터를 할당할 때 발생합니다. 할당 과정에서 XIVE 코드는 struct xive_irq_data를 생성하고 이를 irq_data->chip_data에 저장합니다.
나중에 MSI-X irqdomain이 해제될 때, xive_irq_free_data()는 이 구조체를 검색하고 해제하는 역할을 합니다. 그러나 커밋 cc0cc23babc9("powerpc/xive: Untangle xive from child interrupt controller drivers") 이후, xive_irq_free_data()는 irq_get_chip_data()를 사용하여 chip_data를 검색하는데, 이는 하위 도메인을 통해 데이터를 조회합니다.
이는 올바르지 않습니다. XIVE 전용 irq 데이터는 XIVE(상위) 도메인과 연관되어 있기 때문입니다. 결과적으로 조회가 실패하고 할당된 struct xive_irq_data가 해제되지 않아, 위에서 보고된 kmemleak이 발생합니다.
irq_domain_get_irq_data()를 사용하여 올바른 도메인에서 irq_data를 검색한 후, irq_data_get_irq_chip_data()를 통해 chip_data에 접근함으로써 이 문제를 수정합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.