🇰🇷 한글 설명
Linux 커널의 nouveau 드라이버 내 ucopy 함수에서 에러 처리 시 자원 해제 순서가 잘못 설정되어 발생하는 취약점입니다. 메모리 할당 실패 시 잘못된 포인터를 해제하여 커널 오류(Kernel Oops)를 유발하거나 메모리 누수를 발생시킬 수 있습니다.
💡 쉬운 설명
컴퓨터의 그래픽 카드를 관리하는 프로그램에서 에러가 났을 때, 정리 작업을 거꾸로 해야 하는데 순서를 틀려서 발생합니다. 이로 인해 시스템이 갑자기 멈추거나 메모리가 낭비되는 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau: fix reversed error cleanup order in ucopy functions
nouveau_uvmm_vm_bind_ucopy() and nouveau_exec_ucopy() place their error
cleanup labels in allocation order rather than reverse allocation order.
On a u_memcpya() failure for in_sync.s, the goto to err_free_ops (or
err_free_pushs) frees the first allocation and then falls through to
err_free_ins, which calls u_free() on args->in_sync.s.
Since args->in_sync.s still holds the ERR_PTR returned by the failed
u_memcpya(), and ERR_PTR values are not caught by ZERO_OR_NULL_PTR(),
kvfree() proceeds to dereference it, which can result in a kernel oops.
A failure for out_sync.s instead jumps to err_free_ins and skips freeing
the first allocation, leading to a memory leak.
Fix by swapping the cleanup label order so resources are freed in the
correct reverse allocation sequence.
📍 영향받는 시스템
Linux kernel (drm/nouveau driver components)
⚔️ 공격 벡터
특정 메모리 복사 작업(u_memcpya) 실패를 유도하여 커널 오류 또는 메모리 누수 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ucopy 함수의 에러 처리 순서 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux