🇰🇷 한글 설명
리눅스 커널의 HID 코어에서 Resolution Multiplier 제어 항목이 반드시 논리적 컬렉션(Logical Collection) 내에 존재해야 한다는 잘못된 가정이 발견되었습니다. 이로 인해 논리적 컬렉션이 정의되지 않은 경우 NULL 포인터 참조와 같은 오류가 발생할 수 있습니다.
💡 쉬운 설명
입력 장치(마우스, 키보드 등)를 처리하는 리눅스 시스템의 핵심 코드에서 논리적 구조를 잘못 판단하는 오류가 있었습니다. 이 오류를 이용하면 시스템이 예상치 못한 동작을 하거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections
A report in 2019 by the syzbot fuzzer was found to be connected to two
errors in the HID core associated with Resolution Multipliers. One of
the errors was fixed by commit ea427a222d8b ("HID: core: Fix deadloop
in hid_apply_multiplier."), but the other has not been fixed.
This error arises because hid_apply_multipler() assumes that every
Resolution Multiplier control is contained in a Logical Collection,
i.e., there's no way the routine can ever set multiplier_collection to
NULL. This is in spite of the fact that the function starts with a
big comment saying:
* "The Resolution Multiplier control must be contained in the same
* Logical Collection as the control(s) to which it is to be applied.
...
* If no Logical Collection is
* defined, the Resolution Multiplier is associated with all
* controls in the report."
* HID Usage Table, v1.12, Section 4.3.1, p30
*
* Thus, search from the current collection upwards until we find a
* logical collection...
The comment and the code overlook the possibility that none of the
collections found may be a Logical Collection.
The fix is to set the multiplier_collection pointer to NULL if the
collection found isn't a Logical Collection.
📍 영향받는 시스템
Linux Kernel (HID core 관련 버전)
⚔️ 공격 벡터
특수하게 조작된 HID(Human Interface Device) 보고서를 사용하는 하드웨어를 연결하여 발생
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인