CVE-2026-80782 in Linux
요약
\~에 의해 VulDB • 2026. 09. 04.
리눅스 커널에서 다음 취약점이 해결되었습니다:
HID: magicmouse: 입력 장치가 점유되지 않은 경우 stale한 msc->input을 유지하지 않음
magicmouse_input_mapping()은 보고서 설명자가 파싱되는 동안 첫 번째 hid_input의 input_dev를 msc->input에 캐시합니다. 드라이버의 나머지 부분은 non-NULL인 msc->input이 입력 장치가 등록되었음을 증명하는 것으로 간주합니다.
그러나 이 논리는 hid-input 오류 경로에서는 성립하지 않습니다. 만약 hidinput_connect()가 실패한다면(예: input_register_device()가 에러를 반환하는 경우), 이는 모든 생성된 input_dev(캐시된 msc->input 포함)를 해제하는 hidinput_disconnect()를 통해 unwind됩니다.
이 실패는 probe 작업을 중단하지 않습니다. hid_connect()는 단순히 점유(skip)만 수행합니다:
if ((connect_mask & HID_CONNECT_HIDINPUT) && !hidinput_connect(hdev, connect_mask & HID_CONNECT_HIDINPUT_FORCE)) hdev->claimed |= HID_CLAIMED_INPUT;
그리고 아래에 있는 "device has no listeners" 탈출구는 이 드라이버에서는 발동하지 않습니다. 해당 드라이버는 ->raw_event를 설정하며, USB Magic Mouse 2 / Magic Trackpad 2 경로에서 hidraw와 hiddev도 점유됩니다. 따라서 hid_hw_start()은 0을 반환하고 magicmouse_probe()는 msc->input이 해제된 메모리(freed memory)를 가리킨 상태로 계속 진행됩니다. non-NULL이기 때문에 probe의 "input not registered" 확인과 ->raw_event 및 ->event 내 NULL 검사를 통과하며, 다음 입력 보고서는 해제된 메모리를 역참조(dereferences)합니다.
HID 코어가 입력 장치를 점유하지 않은 경우 msc->input을 클리어하여 기존 NULL 체크가 이 경우도 커버하도록 합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.