🇰🇷 한글 설명
Linux 커널의 arm-smmu-v3-iommufd 구성 요소에서 vDEVICE가 정확히 하나의 Stream ID를 가져야 함을 검증하지 않는 취약점이 발견되었습니다. 이로 인해 여러 스트림을 가진 장치의 경우 일부 ATC 및 IOTLB 엔트리가 무효화되지 않거나, 스트림이 없는 경우 경계 외 메모리 읽기(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 장치 관리 시스템이 장치에 연결된 통로의 개수를 제대로 확인하지 않아 발생하는 문제입니다. 이로 인해 데이터가 엉뚱한 곳으로 흐르거나 시스템이 예상치 못한 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommu/arm-smmu-v3-iommufd: Require exactly one Stream ID for a vDEVICE
arm_vsmmu_vsid_to_sid() maps a guest's vSID to a single physical Stream ID
taken from master->streams[0], assuming a device has exactly one stream. A
device with several streams gets only its first one mapped, so a guest vSID
invalidation cannot reach the others' ATC and IOTLB entries; a device with
none makes master->streams a ZERO_SIZE_PTR, read out of bounds.
Add an arm_vsmmu_vdevice_init() op to reject the vDEVICE with -EOPNOTSUPP
when master->num_streams is not one, rather than mapping it silently.
📍 영향받는 시스템
Linux kernel (arm-smmu-v3-iommufd 관련 모듈 사용 시스템)
⚔️ 공격 벡터
가상화 환경에서 게스트 OS가 잘못된 스트림 구성을 가진 vDEVICE를 생성하여 메모리 무효화 실패 또는 경계 외 읽기를 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 arm_vsmmu_vdevice_init() 검증 로직을 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux