🇰🇷 한글 설명
Linux 커널의 ALSA USB 오디오 드라이버에서 DualSense 컨트롤러의 잭 감지 입력 핸들러가 kobject 경로를 조회하는 과정에서 발생하는 취약점입니다. 컨트롤러의 물리적 연결이 불안정하여 장치가 빠르게 재연결될 때, 이미 해제된 USB 장치의 kobject 이름을 참조하려고 시도하여 strlen() 함수에서 결함(fault)이 발생할 수 있습니다.
💡 쉬운 설명
DualSense 게임 패드의 연결이 불안정할 때, 컴퓨터가 장치 정보를 확인하려다 잘못된 메모리 주소를 참조하여 시스템 오류를 일으킬 수 있는 문제입니다. 장치가 연결되고 끊어지는 찰나의 순간에 발생하는 소프트웨어적 충돌입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb-audio: avoid kobject path lookup in DualSense match
The DualSense jack-detection input handler verifies that a matching input
device belongs to the same physical controller by building kobject path
strings for both the input device and the USB audio device, then comparing
the path prefix.
This was observed when a weak physical connection caused the controller
to rapidly disconnect and reconnect. During that repeated hotplug,
snd_dualsense_ih_match() can run while the controller's USB device is
being disconnected. kobject_get_path() walks ancestor kobjects and
dereferences their names; if the USB device kobject name is no longer
valid, this can fault in strlen():
RIP: 0010:strlen+0x10/0x30
Call Trace:
kobject_get_path+0x34/0x150
snd_dualsense_ih_match+0x49/0xd0 [snd_usb_audio]
input_register_device+0x566/0x6a0
ps_probe+0xb89/0x1590 [hid_playstation]
The same ownership check can be done without building kobject path
strings. The input device is parented below the HID device, USB interface
and USB device, so walking the input device parent chain and comparing
against the mixer USB device preserves the check without dereferencing
kobject names during disconnect.
📍 영향받는 시스템
Linux Kernel (ALSA usb-audio 및 hid-playstation 드라이버 포함 버전)
⚔️ 공격 벡터
물리적으로 불안정한 USB 연결을 통한 장치의 반복적인 핫플러그(Hotplug) 유도
🛡️ 대응 방법
kobject 경로 문자열 생성 대신 부모 장치 체인을 비교하도록 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.