🇰🇷 한글 설명
Linux 커널의 uvcvideo 드라이버에서 uvc_parse_format() 함수가 3바이트 버퍼 검사로는 부족한데 4바이트 접근을 시도하면서 발생하는 1바이트 out-of-bounds 메모리 읽기 취약점입니다. 정확한 길이의 악의적인 USB 비디오 디바이스 디스크립터를 통해 트리거될 수 있습니다.
💡 쉬운 설명
USB 카메라나 웹캠을 담당하는 Linux 커널 코드에서 메모리를 잘못 읽는 버그입니다. 특수하게 제작된 USB 장치가 연결되면 시스템이 예기치 않게 종료되거나 정보가 유출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: uvcvideo: Fix 1-byte out-of-bounds read in uvc_parse_format()
The buffer length check before calling uvc_parse_format() only ensured
that the buffer has at least 3 bytes (buflen > 2), buf the function
accesses buffer[3], requiring at least 4 bytes.
This can lead to an out-of-bounds read if the buffer has exactly 3 bytes.
Fix it by checking that the buffer has at least 4 bytes in
uvc_parse_format().
📍 영향받는 시스템
Linux kernel uvcvideo 드라이버 (모든 영향받은 버전 - 수정 커밋 기준으로 결정)
⚔️ 공격 벡터
로컬 물리적 접근 또는 USB 장치로 가장하는 악의적인 하드웨어 연결
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하거나 uvc_parse_format() 함수의 버퍼 길이 검사를 4바이트로 수정하는 패치 적용
🔧 검증 코드
커널 버전을 확인하고 해당 버전이 CVE 수정 날짜 이후 릴리스되었는지 Linux 공식 changelog에서 확인하여 패치 적용 여부 판단
uname -r | grep -qE '(4\.[0-9]+|5\.[0-9]+|6\.[0-9]+)' && echo 'Check kernel release date against CVE-2025-38680 fix date'