🇰🇷 한글 설명
Linux 커널의 drm/imagination 드라이버 내 pvr_set_uobj_array() 함수에서 사용자 배열 스트라이드(stride) 계산 오류가 발견되었습니다. 이 오류로 인해 커널 객체와 사용자 공간 포인터의 이동 방향이 반대로 처리되어, 잘못된 메모리 주소에서 데이터를 읽거나 잘못된 위치에 데이터를 쓰는 문제가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 메모리에 데이터를 옮길 때, 데이터를 건너뛰는 간격을 잘못 계산하여 엉뚱한 곳에 정보를 적거나 읽는 버그입니다. 이로 인해 시스템의 중요한 정보가 유출되거나 프로그램이 비정상적으로 작동할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/imagination: Fix user array stride in pvr_set_uobj_array()
pvr_set_uobj_array() copies an array of kernel objects to a userspace
array whose element size is described by out->stride. When out->stride
is different from the kernel object size, the slow path advances the
userspace pointer by the kernel object size and the kernel pointer by the
userspace stride.
This reverses the intended layout. For larger userspace strides, later
copies read from the wrong kernel addresses. For smaller userspace
strides, later copies are written at the wrong userspace offsets. The
padding clear is also done only for the first element instead of the
padding area for each element.
Advance the userspace pointer by out->stride and the kernel pointer by
obj_size, and clear per-element padding while the current userspace
pointer is still available.
📍 영향받는 시스템
Linux kernel (drm/imagination driver 포함 버전)
⚔️ 공격 벡터
조작된 스트라이드 값을 가진 사용자 공간 배열을 통해 커널 메모리 읽기/쓰기 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux