🔍 CVE-2026-80780

0.0
CVSS Score
UNKNOWN
2026-09-04
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 HID pidff 드라이버에서 hid->inputs 리스트가 비어 있을 때 경계 외(OOB) 쓰기가 발생하는 취약점입니다. hid_pidff_init_with_quirks() 함수가 리스트의 비어 있음 여부를 확인하지 않고 list_entry()를 호출하여 잘못된 메모리 주소에 데이터를 기록할 수 있습니다.

💡 쉬운 설명

특수한 장치를 컴퓨터에 연결하면 시스템의 메모리 영역을 잘못 건드려 오류를 일으키거나 보안을 위협할 수 있는 문제입니다. 장치를 꽂는 것만으로도 공격이 가능할 수 있어 주의가 필요합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: HID: pidff: fix OOB write when hid->inputs is empty hid_pidff_init_with_quirks() derives its input_dev from list_entry(hid->inputs.next, struct hid_input, list) without first checking that hid->inputs is non-empty. The list member of struct hid_input is at offset 0, so on an empty list list_entry() yields &hid->inputs itself and the following hidinput->input load reads an unrelated member of struct hid_device. dev is then a type-confused pointer, and force-feedback init writes through it: each set_bit(FF_*, dev->ffbit) stores 8 bytes at dev + 192, past the end of the object dev actually aliases, and input_ff_create() adds further writes of a heap pointer and two function pointers. Until hid-universal-pidff the only caller was hid_pidff_init() from usbhid, which runs under HID_CLAIMED_INPUT and therefore always has at least one hid_input. universal_pidff_probe() starts the device with HID_CONNECT_DEFAULT & ~HID_CONNECT_FF and then calls hid_pidff_init_with_quirks() directly whenever the descriptor carries a PID usage page, bypassing that gate. A report descriptor whose only application collection is on HID_UP_PID leaves hid->inputs empty while hid_connect() still succeeds through the hidraw claim, so probe reaches the unguarded list_entry(). The write happens in the USB probe path, on the hotplug workqueue, so plugging in a malicious device is enough to trigger it; no attacker software and no logged-in user are required. KASAN reports an 8-byte out-of-bounds write in hid_pidff_init_with_quirks() reached from universal_pidff_probe(). Check for an empty list before deriving dev and return -ENODEV, as the other HID force-feedback drivers already do. universal_pidff_probe() propagates the error and unwinds. Discovered by XBOW, triaged by Baul Lee <[email protected]>

📍 영향받는 시스템

Linux kernel (HID pidff driver components)

⚔️ 공격 벡터

악의적으로 조작된 USB HID 장치를 시스템에 연결 (Physical/USB Probe path)

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 hid->inputs의 비어 있음 여부를 확인하도록 수정합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel