🇰🇷 한글 설명
Linux 커널의 accel/rocket 드라이버에서 rocket_probe 함수의 에러 경로 처리 부재로 인한 취약점입니다. rocket_core_init() 실패 시 증가된 카운터를 감소시키지 않고 첫 번째 코어 실패 시 리소스 정리를 하지 않아 메모리 손상(out-of-bounds access)이 발생할 수 있습니다.
💡 쉬운 설명
Linux 커널의 rocket 드라이버에서 초기화 실패 시 정리 작업을 제대로 하지 않아 메모리 접근 오류가 발생합니다. 이로 인해 시스템 안정성을 해칠 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
accel/rocket: fix unwinding in error path in rocket_probe
When rocket_core_init() fails (as could be the case with EPROBE_DEFER),
we need to properly unwind by decrementing the counter we just
incremented and if this is the first core we failed to probe, remove the
rocket DRM device with rocket_device_fini() as well. This matches the
logic in rocket_remove(). Failing to properly unwind results in
out-of-bounds accesses.
📍 영향받는 시스템
Linux kernel에 rocket GPU 드라이버가 포함된 시스템 (커널 6.10 이후 버전)
⚔️ 공격 벡터
로컬 접근 권한자의 GPU 장치 초기화 과정 중 메모리 손상 유발
🛡️ 대응 방법
Linux kernel을 패치된 버전으로 업데이트하거나 rocket 드라이버의 에러 핸들링 코드 수정
🔧 검증 코드
현재 커널 버전이 6.10 이상이고 rocket 드라이버가 로드된 경우 패치 필요
uname -r | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' && dmesg | grep -i rocket