🇰🇷 한글 설명
Linux 커널의 nouveau 드라이버에서 pushbuf 재배치 경계 검사 시 32비트 정수 오버플로가 발생합니다. 이로 인해 메모리 크기 검증 과정에서 잘못된 계산이 수행되어 보안 취약점이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리 크기를 계산할 때 숫자가 너무 커져서 0으로 돌아가는 오류가 발생합니다. 이 오류를 이용하면 공격자가 허용되지 않은 메모리 영역에 접근할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau: fix u32 overflow in pushbuf reloc bounds check
nouveau_gem_pushbuf_reloc_apply() validates each relocation with
if (r->reloc_bo_offset + 4 > nvbo->bo.base.size)
but reloc_bo_offset is __u32 (uapi/drm/nouveau_drm.h) and the integer
literal 4 promotes to unsigned int, so the addition is performed in 32
bits and wraps before the comparison against the size_t bo size.
Cast to u64 so the addition happens in 64-bit arithmetic.
[ Add Fixes: tag. - Danilo ]
📍 영향받는 시스템
nouveau 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 메모리 재배치 오프셋 값을 전달하여 경계 검사를 우회하는 방식
🛡️ 대응 방법
nouveau 드라이버의 정수 오버플로 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인