🇰🇷 한글 설명
리눅스 커널의 HID 코어에서 번호가 지정된 보고서(numbered report) 처리 시 발생하는 경계 외 읽기(OOB read) 취약점입니다. hid_report_raw_event() 함수에 크기가 0인 데이터가 전달될 경우, 유효성 검사 전에 hid_get_report()를 호출하여 데이터 포인터를 참조함으로써 커널 패닉이나 정보 유출을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 입력 장치(마우스, 키보드 등)를 처리하는 과정에서 데이터 크기를 제대로 확인하지 않아 발생하는 오류입니다. 잘못된 데이터가 들어오면 시스템이 갑자기 멈추거나 중요한 정보가 새 나갈 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: core: Fix OOB read in hid_get_report for numbered reports
When a caller passes a size of 0 to hid_report_raw_event() for a
numbered report, the function originally called hid_get_report() before
performing any size validation.
Inside hid_get_report(), if the report is numbered (report_enum->numbered
is true), it unconditionally dereferences data[0] to extract the report ID.
With a size of 0, this results in an out-of-bounds read or kernel panic.
Fix this by moving the numbered report size validation check before the
call to hid_get_report(), ensuring that size is at least 1 before
dereferencing the data pointer.
📍 영향받는 시스템
번호가 지정된 보고서를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
크기가 0인 악의적인 HID 보고서 데이터를 커널에 전달하여 발생
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인