🇰🇷 한글 설명
Linux 커널의 AMDGPU 사용자 큐 드라이버에서, 큐의 doorbell 핸들로 임의의 BO를 전달하면 일반 BO가 doorbell 도메인으로 강제 이동되어 내용이 소실될 수 있는 문제가 수정되었습니다. 이제 doorbell 도메인으로 생성된 BO만 허용됩니다. 같은 장치를 공유하는 다른 클라이언트의 버퍼 데이터가 훼손될 수 있었습니다.
💡 쉬운 설명
그래픽 드라이버가 다른 프로그램과 공유한 메모리 버퍼를 잘못 처리해 그 안의 데이터가 지워질 수 있었습니다. 이제 올바른 종류의 버퍼만 받도록 막아서 이 문제가 해결되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu/userq: only accept doorbell BOs as queue doorbell
amdgpu_userq_get_doorbell_index() pins any BO passed as doorbell_handle
into the doorbell domain. For a regular BO, TTM moves it with
ttm_bo_move_null() and its contents are lost. Since an importer on the
same device gets the exporter's GEM object, a client can do this to a
buffer another client shared with it.
Reject BOs that were not created in the doorbell domain.
v2: drop the error message, use a local abo variable (Christian)
(cherry picked from commit f7497bbc19db4821c62b9d97b31c9086feb2d917)
📍 영향받는 시스템
Linux 커널 AMDGPU 드라이버를 사용하는 AMD GPU 탑재 시스템 (수정 커밋 이전 커널 버전)
⚔️ 공격 벡터
로컬 사용자가 다른 클라이언트와 공유한 GEM 버퍼를 doorbell 핸들로 전달해 해당 버퍼의 내용을 손상시킴
🛡️ 대응 방법
커널을 해당 수정 커밋(f7497bbc19db4821c62b9d97b31c9086feb2d917)이 포함된 최신 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 changelog와 대조하여 f7497bbc 수정이 포함되었는지 확인하며, 해당 수정이 없는 구버전이면 취약할 수 있습니다.