🇰🇷 한글 설명
Linux 커널의 fastrpc 구성 요소에서 버퍼를 언맵(unmap)하기 전에 리스트에서 먼저 제거하지 않아 발생하는 레이스 컨디션 취약점입니다. 여러 스레드가 동시에 언맵을 호출할 경우, 한 스레드가 언맵 작업이 완료되기 전에 리스트에서 항목을 제거하여 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
데이터를 메모리에서 지우는 과정에서 순서가 잘못되어 여러 작업이 동시에 일어날 때 충돌이 발생하는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
misc: fastrpc: Remove buffer from list prior to unmap operation
fastrpc_req_munmap_impl() is called to unmap any buffer. The buffer is
getting removed from the list after it is unmapped from DSP. This can
create potential race conditions if multiple threads invoke unmap
concurrently, where one thread may remove the entry from the list while
another thread's unmap operation is still ongoing.
Fix this by removing the buffer entry from the list before calling the
unmap operation. If the unmap fails, the entry is re-added to the list
so that userspace can retry the unmap, or alternatively, the buffer
will be cleaned up during device release when the DSP process is torn
down and all DSP-side mappings are freed along with remaining buffers
in the list.
📍 영향받는 시스템
Linux kernel (fastrpc module 사용 시스템)
⚔️ 공격 벡터
멀티스레드 환경에서 fastrpc_req_munmap_impl()을 통한 동시 언맵 호출을 이용한 레이스 컨디션 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 fastrpc 버퍼 관리 로직을 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.