CVE-2026-89624정보

요약

\~에 의해 VulDB • 2026. 09. 11.

리눅스 커널에서 다음 취약점이 해결되었습니다:

HID: universal-pidff - force-feedback 초기화 실패 시 장치 중지

universal_pidff_probe()는 hid_hw_start()를 사용하여 장치를 시작한 후, force-feedback 초기화가 실패하면 "return error"만 수행하는 라벨을 통해 오류를 반환합니다. 이로 인해 장치가 시작된 상태로 남아 있게 됩니다.

HID 코어는 드라이버 대신 언와인드(unwind)하지 않습니다. __hid_device_probe()는 devres 그룹을 해제하고, 보고서를 닫으며, hdev->driver을 NULL로 설정합니다:

if (ret) {
devres_release_group(&hdev->dev, hdev->devres_group_id); hid_close_report(hdev); hdev->driver = NULL; }

hid_hw_start()가 hid_connect()를 통해 등록한 hidraw 문자 장치는 kzalloc()로 할당되고 cdev_device_add()로 추가되므로 devres 관리 대상이 아니며 해당 해제 과정을 생존합니다. hdev->driver이 NULL인 경우, hid_device_remove()는 드라이버가 여전히 연결되어 있을 때만 언와인드하므로 hid_hw_stop()도 건너뜁니다. 따라서 등록 정보는 두 경로 모두에서 장치보다 더 오래 유지됩니다.

생존한 /dev/hidrawX를 열면 해제된 메모리에 쓰기가 발생합니다. KASAN은 hidraw_open() -> hid_hw_open() -> 전송부의 open 콜백(해제된 객체 내부에서 스핀락을 획득함)으로부터 use-after-free 쓰기를 보고합니다. PID 사용 페이지는 포함하지만 입력 리포트가 없는 설명자만으로도 충분합니다: hidraw가 장치를 점유하여 hid_hw_start()가 성공하는 동안, hid->inputs는 비어 있으므로 force-feedback 초기화가 실패합니다. 다른 실패 케이스도 hid_pidff_init_with_quirks()에서 반환되며 - 출력 리포트 없음, 할당 실패, pidff_init_fields(), pidff_check_autocenter(), 사용 불가능한 효과 카운트, input_ff_create() - 모두 동일한 라벨로 도달합니다.

해당 경로에서도 장치를 중지하십시오. hid-dr.c와 hid-emsff.c는 HID_CONNECT_DEFAULT & ~HID_CONNECT_FF 마스크를 사용하여 장치를 시작하며 이미 이를 수행하고 있습니다. 두 가지 이전 goto 문은 시작된 장치가 없으므로 hid_hw_stop() 없이 반환해야 하므로, start 이후에 실패하는 경로에는 자체 라벨을 부여하십시오.

XBOW가 발견함, Baul Lee가 분류(triage)함

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

출처

Do you need the next level of professionalism?

Upgrade your account now!