🇰🇷 한글 설명
Linux 커널의 amdxdna 드라이버에서 명령 체인의 첫 번째 BO(Buffer Object) 매핑 실패 시 참조 횟수를 적절히 해제하지 않아 발생하는 메모리 누수 취약점입니다. 사용자가 특정 방식으로 dma-buf를 재활용하여 매핑 실패를 유도할 경우 참조 카운트가 누수될 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 과정에서 사용이 끝난 메모리 정보를 제대로 지우지 않아 메모리가 조금씩 낭비되는 문제입니다. 공격자가 특수한 방법을 사용하면 이 문제를 일으켜 시스템 자원을 소모하게 만들 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
accel/amdxdna: put the chained BO when its mapping fails
amdxdna_cmd_set_error() looks up the first BO of a command chain, which
takes a reference, and drops it at the end of the function. The mapping of
that BO is established in between, and the failure path returns without the
put, so the reference is leaked.
Ordinary use does not reach it. The chain has been submitted before any of
this runs, so aie2_cmdlist_fill_slot() has already called
amdxdna_cmd_get_op() on that BO and amdxdna_gem_vmap() has cached its
address. What makes it reachable is that the BO is resolved again by
handle here, and the handle is userspace's to recycle: closing it after
submission and importing a dma-buf whose exporter implements no vmap onto
the same id leaves amdxdna_gem_get_obj() returning an object this cannot
map, since prime_import() types every import AMDXDNA_BO_SHARE.
📍 영향받는 시스템
Linux kernel (amdxdna driver 포함 버전)
⚔️ 공격 벡터
사용자 공간에서 dma-buf 핸들을 재활용하여 매핑 실패를 유도하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.