🇰🇷 한글 설명
Linux 커널의 AMD GPU 디스플레이 드라이버(DCN401)에서 스트림 인코더 생성 시 배열 범위를 초과하여 접근하는 버퍼 오버플로우 취약점이 발견되었습니다. eng_id 값이 유효한 인덱스 범위를 벗어날 경우 정의되지 않은 동작을 유발할 수 있습니다.
💡 쉬운 설명
그래픽 카드 드라이버가 데이터를 저장하는 공간의 크기보다 더 많은 데이터를 쓰려고 시도할 때 발생하는 오류입니다. 이로 인해 시스템이 불안정해지거나 예상치 못한 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Implement bounds check for stream encoder creation in DCN401
'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 dcn401_stream_encoder_create
Found by smatch:
drivers/gpu/drm/amd/amdgpu/../display/dc/resource/dcn401/dcn401_resource.c:1209 dcn401_stream_encoder_create() error: buffer overflow 'stream_enc_regs' 4 <= 5
📍 영향받는 시스템
Linux kernel (AMD GPU DCN401 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
특정 하드웨어 구성이나 드라이버 호출을 통해 잘못된 인덱스 값을 전달하여 메모리 범위를 초과 접근
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 dcn401_stream_encoder_create 함수의 경계 검사 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.