🇰🇷 한글 설명
Linux 커널의 AMD GPU 디스플레이 드라이버(DCN301)에서 스트림 인코더 생성 시 경계 검사가 누락된 취약점이 발견되었습니다. eng_id 값이 배열의 크기를 초과하는 인덱스로 사용될 경우 버퍼 오버플로우가 발생하여 정의되지 않은 동작을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 그래픽 카드를 제어하는 프로그램에서 정해진 저장 공간보다 더 큰 번호를 참조하려고 시도하는 오류가 있습니다. 이로 인해 시스템이 예상치 못하게 작동하거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Implement bounds check for stream encoder creation in DCN301
'stream_enc_regs' array is an array of dcn10_stream_enc_registers
structures. The array is initialized with four elements, corresponding
to the four calls to stream_enc_regs() in the array initializer. This
means that valid indices for this array are 0, 1, 2, and 3.
The error message 'stream_enc_regs' 4 <= 5 below, is indicating that
there is an attempt to access this array with an index of 5, which is
out of bounds. This could lead to undefined behavior
Here, eng_id is used as an index to access the stream_enc_regs array. If
eng_id is 5, this would result in an out-of-bounds access on the
stream_enc_regs array.
Thus fixing Buffer overflow error in dcn301_stream_encoder_create
reported by Smatch:
drivers/gpu/drm/amd/amdgpu/../display/dc/resource/dcn301/dcn301_resource.c:1011 dcn301_stream_encoder_create() error: buffer overflow 'stream_enc_regs' 4 <= 5
📍 영향받는 시스템
Linux kernel (AMD GPU drivers using DCN301)
⚔️ 공격 벡터
특정 하드웨어 구성이나 드라이버 호출을 통해 잘못된 인덱스 값을 전달하여 메모리 경계를 넘어서는 접근 시도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 dcn301_stream_encoder_create 함수의 경계 검사 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.