🇰🇷 한글 설명
Linux 커널의 fastrpc 구성 요소에서 find_vma() 함수 오용으로 인해 DMA 주소가 손상되는 취약점이 발견되었습니다. 사용자 제공 포인터가 VMA 범위 밖의 간격에 위치할 경우 언더플로우가 발생하여 DSP로 잘못된 DMA 주소가 전달될 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리 주소를 계산하는 과정에서 잘못된 계산 방식 때문에 데이터가 엉뚱한 곳으로 전달될 수 있는 오류입니다. 이로 인해 시스템의 보안이 뚫리거나 데이터가 오염될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
misc: fastrpc: fix DMA address corruption due to find_vma misuse
fastrpc_get_args() uses find_vma() to look up the VMA for a user-provided
pointer and compute a DMA address offset. When the address falls in a gap
before the returned VMA, (ptr & PAGE_MASK) - vma->vm_start underflows,
corrupting the DMA address sent to the DSP.
Replace find_vma() with vma_lookup(), which returns NULL when the address
is not contained within any VMA.
📍 영향받는 시스템
Linux kernel (fastrpc module 사용 시스템)
⚔️ 공격 벡터
사용자가 조작된 메모리 주소 포인터를 fastrpc 인터페이스를 통해 전달하여 DMA 주소 계산 오류 유도
🛡️ 대응 방법
find_vma() 대신 vma_lookup()을 사용하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.