🇰🇷 한글 설명
리눅스 커널의 host1x GPU 드라이버에서 iommu_map_sgtable() 함수의 반환 값 처리 오류가 발견되었습니다. 기존에는 오류 발생 시 0을 반환했으나, 수정된 버전은 음수 값을 포함한 ssize_t를 반환하며 pin_job() 함수에서 이를 처리하는 과정의 정수 오버플로우 취약점을 해결했습니다.
💡 쉬운 설명
컴퓨터의 그래픽 처리 장치(GPU)가 메모리를 사용하는 과정에서 오류를 잘못 판단하여 시스템이 오작동할 수 있는 문제입니다. 이 오류를 이용하면 공격자가 시스템의 제어권을 획득하거나 비정상적인 동작을 유도할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
gpu: host1x: Fix iommu_map_sgtable() return value check
Commit "iommu: return full error code from iommu_map_sg[_atomic]()"
changed iommu_map_sgtable() to return an ssize_t and negative values
in error cases, rather than a size_t and a zero.
pin_job() also was incorrectly assigning to 'int', which could cause
overflows into negative values.
Update pin_job() to correctly check for errors from iommu_map_sgtable.
📍 영향받는 시스템
iommu_map_sgtable() 및 pin_job() 함수가 포함된 취약한 버전의 Linux Kernel (host1x GPU 드라이버 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 메모리 매핑 요청을 통해 정수 오버플로우를 유발하여 커널 권한 획득 시도
🛡️ 대응 방법
iommu_map_sgtable()의 반환 형식이 ssize_t로 수정되고 pin_job()의 오류 체크 로직이 업데이트된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인