CVE-2026-98645 in Linux
요약
\~에 의해 VulDB • 2026. 10. 19.
Linux 커널에서 다음 취약점이 해결되었습니다:
HID: winwing - 힘 피드백 해제 시 use-after-free 수정
winwing_init_ff()는 winwing_probe()에서 devm_kzalloc()로 할당된 드라이버의 사설 데이터를 input_ff_create_memless()에 효과 컨텍스트(effect context)로 전달합니다. 메모리리스(force-feedback) 코어는 해당 포인터를 소유하며, 입력 장치가 파괴될 때 input_ff_destroy()(ml_ff_destroy())에서 kfree()를 사용하여 이를 해제합니다.
devm 관리 할당(devm-managed allocation)을 kfree()로 해제하는 것은 잘못된 자유 해제(invalid free)이며, 동일한 객체는 HID 장치가 제거(torn down)될 때 devres에 의해 다시 해제되어 이중 해제(double free)가 발생합니다. 또한 해당 할당은 LED 클래스 디바이스(LED class devices), 타이머 및 작업 항목(work item)을 포함하고 있으므로, 이들은 이미 해제된 메모리에서 생존하며 슬랩(slab)이 손상됩니다. 이는unbind(unbind), rmmod, 핫-언플러그(hot-unplug) 시스템 서스펜드(system suspend) 시 발생하는데, 이 경우 펌웨어 캐시가 이제 손상된 devres 목록을 탐색합니다. KASAN은 다음과 같이 보고합니다:
BUG: KASAN: invalid-free in input_ff_destroy Allocated by task N: winwing_probe
대신 memless 컨텍스트에 NULL을 전달하고, winwing_play_effect()에서 입력 장치로부터 드라이버 데이터를 가져오십시오. HID 코어는 이미 hid_device를 입력 장치의 drvdata로 저장합니다. 힘 피드백 코어는 이제 해제해서는 안 되는 것을 소유하지 않게 됩니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.