🔍 CVE-2024-56669

8.8
CVSS Score
HIGH
2024-12-27
2026-08-04 11:22
✅ 완료

🇰🇷 한글 설명

Linux 커널의 iommu/vt-d 구성 요소에서 ATS(Address Translation Services)를 비활성화하기 전에 캐시 태그를 제거하지 않아 발생하는 취약점입니다. 이로 인해 CACHE_TAG_DEVTLB 유형의 태그가 도메인이 해제된 후에도 남아 있어 Use-After-Free 조건이 발생하며, 이는 메모리 누수나 커널 크래시를 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터의 메모리 관리 시스템이 데이터를 지우는 순서가 잘못되어, 이미 사라진 정보를 다시 참조하려다 시스템이 멈추거나 오류가 발생하는 문제입니다. 특히 여러 장치를 동시에 사용할 때 시스템이 갑자기 꺼질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Remove cache tags before disabling ATS The current implementation removes cache tags after disabling ATS, leading to potential memory leaks and kernel crashes. Specifically, CACHE_TAG_DEVTLB type cache tags may still remain in the list even after the domain is freed, causing a use-after-free condition. This issue really shows up when multiple VFs from different PFs passed through to a single user-space process via vfio-pci. In such cases, the kernel may crash with kernel messages like: BUG: kernel NULL pointer dereference, address: 0000000000000014 PGD 19036a067 P4D 1940a3067 PUD 136c9b067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 74 UID: 0 PID: 3183 Comm: testCli Not tainted 6.11.9 #2 RIP: 0010:cache_tag_flush_range+0x9b/0x250 Call Trace: <TASK> ? __die+0x1f/0x60 ? page_fault_oops+0x163/0x590 ? exc_page_fault+0x72/0x190 ? asm_exc_page_fault+0x22/0x30 ? cache_tag_flush_range+0x9b/0x250 ? cache_tag_flush_range+0x5d/0x250 intel_iommu_tlb_sync+0x29/0x40 intel_iommu_unmap_pages+0xfe/0x160 __iommu_unmap+0xd8/0x1a0 vfio_unmap_unpin+0x182/0x340 [vfio_iommu_type1] vfio_remove_dma+0x2a/0xb0 [vfio_iommu_type1] vfio_iommu_type1_ioctl+0xafa/0x18e0 [vfio_iommu_type1] Move cache_tag_unassign_domain() before iommu_disable_pci_caps() to fix it.

📍 영향받는 시스템

Linux Kernel (특히 vfio-pci를 통해 여러 VF를 사용하는 환경)

⚔️ 공격 벡터

로컬 공격자가 vfio-pci를 통해 여러 가상 기능(VF)을 단일 사용자 공간 프로세스에 할당하여 메모리 해제 과정을 유도함으로써 발생

🛡️ 대응 방법

iommu_disable_pci_caps() 호출 전에 cache_tag_unassign_domain()을 호출하도록 커널 패치를 적용하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전(예: 6.11.10 이상 또는 배포판별 보안 패치 적용 버전)인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel