🇰🇷 한글 설명
리눅스 커널의 vivid 미디어 드라이버에서 비디오 캡처 버퍼를 32개 이상 사용할 때 버퍼 오버라이트가 발생하는 취약점입니다. 버퍼 개수 제한은 64개로 늘어났으나 내부 배열 크기는 32개로 유지되어 인덱스 32 이상의 접근 시 경계 외 쓰기가 발생합니다.
💡 쉬운 설명
동영상 데이터를 담는 그릇의 개수는 늘려놓고, 정작 그 그릇들을 관리하는 명단은 예전 크기 그대로 두어 문제가 생겼습니다. 이로 인해 정해진 범위를 벗어난 곳에 데이터를 쓰게 되어 시스템이 충돌할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: vivid: fix buffer overwrite when using > 32 buffers
The maximum number of buffers that can be requested was increased to
64 for the video capture queue. But video capture used a must_blank
array that was still sized for 32 (VIDEO_MAX_FRAME). This caused an
out-of-bounds write when using buffer indices >= 32.
Create a new define MAX_VID_CAP_BUFFERS that is used to access the
must_blank array and set max_num_buffers for the video capture queue.
This solves a crash reported by:
https://bugzilla.kernel.org/show_bug.cgi?id=219258
📍 영향받는 시스템
vivid 드라이버를 사용하는 리눅스 커널 (버퍼 32개 초과 사용 시)
⚔️ 공격 벡터
비디오 캡처 큐에 32개 이상의 버퍼를 요청하여 메모리 경계를 넘어서는 쓰기 유도
🛡️ 대응 방법
MAX_VID_CAP_BUFFERS 정의를 통해 must_blank 배열 크기를 확장한 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인