CVE-2026-64590 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 06.

리눅스 커널에서 다음 취약점이 해결되었습니다:

dma-buf/udmabuf: 캐시라인 EEXIST 경고 수정을 위해 중복된 CPU 동기화 건너뛰기

CONFIG_DMA_API_DEBUG_SG가 활성화되어 있을 때, udmabuf를 DRM 드라이버(예: GNOME Videos / Showtime의 비디오 재생용 amdgpu)로 가져오면 잘못된(spurious) 경고를 발생시킵니다.

DMA-API: amdgpu 0000:03:00.0: 캐시라인 추적 EEXIST, \ 중복 매핑은 지원되지 않음 WARNING: kernel/dma/debug.c:619 at add_dma_entry+0x473/0x5f0

호출 체인은 다음과 같습니다:

amdgpu_cs_ioctl -> amdgpu_ttm_backend_bind -> dma_buf_map_attachment -> [udmabuf] map_udmabuf -> get_sg_table
-> dma_map_sgtable(dev, sg, direction, 0) // attrs=0 -> debug_dma_map_sg -> add_dma_entry -> EEXIST

이 문제는 udmabuf가 sg_set_folio()를 통해 페이지별 산만-수집(scatter-gather) 목록을 구성하기 때문에 발생합니다. begin_cpu_udmabuf()에서 이미 misc 장치용으로 매핑된 sg 테이블을 생성한 상태에서, amdgpu와 같은 가져오기(importer)가 map_udmabuf()를 통해 동일한 페이지들을 자체 장치용으로 다시 매핑하면, DMA 디버그 인프라는 물리 주소가 캐시라인 경계를 공유하는 두 개의 활성 매핑을 감지하고 중복에 대해 경고합니다.

DMA_ATTR_SKIP_CPU_SYNC 플래그는 add_dma_entry()에서 이 검사를 억제하는데, 이는 맵/언맵 시 CPU 캐시 유지 작업이 수행되지 않아 캐시라인 중복이 무해함을 나타내기 때문입니다.

기타 주요 dma-buf 내보내기는 이미 해당 플래그를 전달합니다: - drm_gem_map_dma_buf(): DMA_ATTR_SKIP_CPU_SYNC 전달 - amdgpu_dma_buf_map(): DMA_ATTR_SKIP_CPU_SYNC 전달

udmabuf의 경우 맵/언맵 시점에서의 CPU 동기화도 중복됩니다. begin_cpu_udmabuf()와 end_cpu_udmabuf()는 이미 dma-buf 인터페이스를 통해 CPU 접근이 요청될 때 dma_sync_sgtable_for_cpu/device()를 사용하여 명시적인 캐시 동기를 수행합니다.

udmabuf에서 dma_map_sgtable() 및 dma_unmap_sgtable()에 DMA_ATTR_SKIP_CPU_SYNC를 전달하여 잘못된 경고를 억제하고 중복된 동기화를 건너뜁니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-386488

EPSS

0.00156

활동

낮음

출처

Want to know what is going to be exploited?

We predict KEV entries!