🔍 CVE-2026-93189

8.8
CVSS Score
HIGH
2026-09-17
2026-10-19 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 HID 코어에서 발생하는 Use-After-Free 취약점으로, 드라이버 초기화 실패 시 입력 장치 입력을 중단하지 않고 메모리를 해제하여 발생합니다. 이로 인해 다른 CPU에서 실행 중인 HID 보고서가 이미 해제된 객체를 참조하게 되어 시스템 불안정이나 권한 상승을 초래할 수 있습니다.

💡 쉬운 설명

장치를 연결하는 과정에서 오류가 발생했을 때, 장치가 여전히 작동 중인 상태로 메모리에서 삭제되어 컴퓨터가 혼란을 겪는 문제입니다. 이로 인해 시스템이 멈추거나 해킹의 통로가 될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: HID: core: quiesce input in hid_hw_stop() to prevent use-after-free A driver's probe calls hid_device_io_start() to enable input delivery, then fails at a later initialization step and unwinds via hid_hw_stop(). The unwind frees struct hidraw via hidraw_disconnect() while in-flight HID reports may still be running on another CPU, dereferencing the freed object through hidraw_report_event(). syzbot reports the resulting use-after-free for the corsair-psu HID driver. Edward Adam Davis posted a per-driver fix for corsair-psu that adds an explicit hid_device_io_stop() before hid_hw_stop() in the probe error path ("hwmon: prevent packets from going to driver for probe", 2026-04-28). Auditing the tree shows 15 drivers call hid_device_io_start(); 7 also call hid_device_io_stop() and 8 do not: drivers calling hid_device_io_start() without a matching hid_device_io_stop() before hid_hw_stop(): drivers/hwmon/corsair-psu.c (fix posted by Edward) drivers/hwmon/corsair-cpro.c drivers/hwmon/nzxt-kraken3.c drivers/hwmon/nzxt-smart2.c drivers/hwmon/gigabyte_waterforce.c drivers/hid/hid-logitech-dj.c drivers/hid/hid-nintendo.c drivers/hid/hid-mcp2221.c Roughly half of all callers of the API are exposed. Centralize the quiesce in hid_hw_stop() so callers do not have to remember the matching stop: if a driver has left hdev->io_started true on entry, call hid_device_io_stop() before hid_disconnect(). For the 7 drivers that already call hid_device_io_stop() correctly, hdev->io_started is false on entry, the guard short-circuits, and behavior is unchanged. No Fixes: tag because the affected drivers gained their hid_device_io_start() calls independently over years; the bug is a class-wide API misuse rather than a regression from one commit.

📍 영향받는 시스템

Linux Kernel (corsair-psu, nzxt-kraken3, hid-nintendo 등 8개 이상의 HID 관련 드라이버 포함 버전)

⚔️ 공격 벡터

취약한 드라이버가 포함된 환경에서 장치 초기화 오류를 유도하여 메모리 참조 오류를 발생시킴

🛡️ 대응 방법

hid_hw_stop() 호출 시 hid_device_io_stop()이 함께 호출되도록 커널 패치 적용

🔧 검증 코드

현재 실행 중인 커널 버전과 취약한 드라이버 모듈이 로드되어 있는지 확인합니다.

Shell / Script
uname -r && grep -E 'corsair-psu|nzxt-kraken3|hid-nintendo' /lib/modules/$(uname -r)/kernel/drivers/hid/ 2>/dev/null

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel