🇰🇷 한글 설명
Linux 커널의 ASoC(ALSA System on Chip) 구성 요소에서 발생하는 취약점으로, 특정 상황에서 드라이버 이름이 NULL인 경우 snd_soc_lookup_component_nolocked() 함수가 NULL 포인터에 접근하여 시스템 오류를 유발할 수 있습니다. soc-generic-dmaengine-pcm.c가 CPU와 플랫폼에 동일한 장치를 사용할 때 발생하며, 이는 커널 패닉이나 시스템 중단으로 이어질 수 있습니다.
💡 쉬운 설명
컴퓨터의 소리 관련 장치를 관리하는 프로그램에서 이름이 없는 장치를 처리하려다 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ASoC: soc-core: care NULL dirver name on snd_soc_lookup_component_nolocked()
soc-generic-dmaengine-pcm.c uses same dev for both CPU and Platform.
In such case, CPU component driver might not have driver->name, then
snd_soc_lookup_component_nolocked() will be NULL pointer access error.
Care NULL driver name.
Call trace:
strcmp from snd_soc_lookup_component_nolocked+0x64/0xa4
snd_soc_lookup_component_nolocked from snd_soc_unregister_component_by_driver+0x2c/0x44
snd_soc_unregister_component_by_driver from snd_dmaengine_pcm_unregister+0x28/0x64
snd_dmaengine_pcm_unregister from devres_release_all+0x98/0xfc
devres_release_all from device_unbind_cleanup+0xc/0x60
device_unbind_cleanup from really_probe+0x220/0x2c8
really_probe from __driver_probe_device+0x88/0x1a0
__driver_probe_device from driver_probe_device+0x30/0x110
driver_probe_device from __driver_attach+0x90/0x178
__driver_attach from bus_for_each_dev+0x7c/0xcc
bus_for_each_dev from bus_add_driver+0xcc/0x1ec
bus_add_driver from driver_register+0x80/0x11c
driver_register from do_one_initcall+0x58/0x23c
do_one_initcall from kernel_init_freeable+0x198/0x1f4
kernel_init_freeable from kernel_init+0x1c/0x12c
kernel_init from ret_from_fork+0x14/0x28
📍 영향받는 시스템
Linux Kernel (ASoC 구성 요소가 포함된 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 구성이나 드라이버 설정을 통해 NULL 포인터 참조를 유도하여 시스템을 중단시킬 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 NULL 드라이버 이름에 대한 예외 처리를 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.