🔍 CVE-2026-31624

5.5
CVSS Score
MEDIUM
2026-04-24
2026-11-06 16:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 HID 코어에서 s32ton() 함수가 HID 장치로부터 전달받은 report_size 값을 적절히 제한하지 않아 발생하는 취약점입니다. 악의적인 HID 장치가 비정상적으로 큰 값을 전달할 경우, 정의되지 않은 비트 시프트(undefined shift) 연산이 발생할 수 있습니다.

💡 쉬운 설명

잘못된 정보를 보내는 USB 장치나 키보드 같은 기기가 컴퓨터의 계산 방식을 혼란스럽게 만들어 시스템 오류를 일으킬 수 있는 문제입니다. 이를 통해 시스템이 예상치 못한 동작을 하거나 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: HID: core: clamp report_size in s32ton() to avoid undefined shift s32ton() shifts by n-1 where n is the field's report_size, a value that comes directly from a HID device. The HID parser bounds report_size only to <= 256, so a broken HID device can supply a report descriptor with a wide field that triggers shift exponents up to 256 on a 32-bit type when an output report is built via hid_output_field() or hid_set_field(). Commit ec61b41918587 ("HID: core: fix shift-out-of-bounds in hid_report_raw_event") added the same n > 32 clamp to the function snto32(), but s32ton() was never given the same fix as I guess syzbot hadn't figured out how to fuzz a device the same way. Fix this up by just clamping the max value of n, just like snto32() does.

📍 영향받는 시스템

Linux Kernel (s32ton() 함수를 사용하는 HID 드라이버 포함 버전)

⚔️ 공격 벡터

조작된 리포트 디스크립터를 사용하는 악의적인 HID 장치를 시스템에 연결

🛡️ 대응 방법

커널 패치(Commit ec61b41918587 관련 수정 사항)를 적용하여 s32ton() 함수의 report_size 값을 제한해야 함

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel