🇰🇷 한글 설명
리눅스 커널의 Nintendo HID 드라이버에서 장치 초기화 실패 시 입출력(IO)을 적절히 중단하지 않아 발생하는 취약점입니다. 이로 인해 장치 데이터가 해제된 후에도 입출력 함수가 호출되어 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
닌텐도 컨트롤러를 연결할 때 오류가 발생하면, 컴퓨터가 컨트롤러를 완전히 끄지 않은 상태에서 관련 데이터를 삭제해버리는 문제입니다. 이 과정에서 시스템이 잘못된 메모리에 접근하여 프로그램이 강제 종료되거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: nintendo: stop device IO before hid_hw_stop on probe failure
nintendo_hid_probe() calls hid_device_io_start() before joycon_init()
and joycon_leds_create(). If either fails, the error path jumps to
err_close which calls hid_hw_close()/hid_hw_stop() without first calling
hid_device_io_stop().
hid_hw_stop() does not stop device IO, so hid_input_report() may still
run and access driver data that is being torn down, resulting in a
use-after-free.
Add an err_io_stop label that calls hid_device_io_stop() before
hid_hw_close(), and point the two post-io_start error paths at it.
📍 영향받는 시스템
Nintendo HID 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
취약한 드라이버가 로드된 상태에서 특정 하드웨어 초기화 오류를 유도하여 메모리 오류 발생
🛡️ 대응 방법
hid_device_io_stop()를 호출하여 IO를 먼저 중단하도록 수정된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인