CVE-2026-74580 in Linux정보

요약

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

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

vhost: vring 재구성 시 vring 메타데이터 캐시 초기화하기

vq->meta_iotlb[]는 각 vring 메타데이터 영역을 백업하는 vhost_iotlb_map의 캐시를 유지하며, iotlb_access_ok()은 캐시 히트 발생 시 즉시 true를 반환하여 해당 영역이 이미 검증되었음을 증명합니다:

if (vhost_vq_meta_fetch(vq, addr, len, type)) return true;

캐시는 VHOST_IOTLB_UPDATE 및 VHOST_IOTLB_INVALIDATE 이벤트, 장치 IOTLB 초기화/재초기화 시, 그리고 vq 리셋 시에는 초기화되지만, VHOST_SET_VRING_ADDR가 vq->desc, vq->avail 및 vq->used를 대체할 때나 VHOST_SET_VRING_NUM이 영역 크기를 변경할 때는 초기화되지 않습니다.

장치 IOTLB가 연결된 상태에서 두 ioctls 모두 활성 상태의 vq에서 허용되며, ioctl 시점에는 주소 검증이 수행되지 않습니다: vq_access_ok() 및 vq_log_used_access_ok()은 주소들이 GIOVAs이기 때문에 즉시 true를 반환하여 검증을 prefetch 시점으로 미룹니다. 한 번 캐시가 채워지면 이러한 지연된 검증은 더 이상 실행되지 않으며, vq_meta_prefetch()는 낡은 엔트리를 히트하고 true를 반환합니다. 이로 인해 vhost_vq_meta_fetch()는 다음과 같이 이전 매핑을 계속 번역하게 됩니다:

map->addr + addr - map->start

이는 이제 해당 매핑이 더 이상 커버하지 않는 주소에 대해 발생합니다. vhost_copy_to_user() 및 vhost_copy_from_user()은 __copy_to_user() 및 __copy_from_user()를 통해 결과를 소비하는데, 이 함수들도 이를 검증하지 않으므로, 이후 used ring 업데이트 또는 descriptor fetch 작업 시 IOTLB가 실제로 매핑하는 영역 외부의 메모리에 접근하게 됩니다.

vring이 재구성될 때마다 메타데이터 캐시를 초기화하여 새로운 주소들이 iotlb_access_ok()의 느린 경로(slow path)를 다시 통과하도록 합니다.

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

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-394145

EPSS

0.00000

출처

Do you know our Splunk app?

Download it now for free!