🇰🇷 한글 설명
Linux 커널의 ASoC 드라이버에서 클록 획득 함수의 반환값을 확인하지 않아 잘못된 포인터를 역참조할 때 커널 크래시가 발생할 수 있습니다. devm_clk_get() 사용 및 IS_ERR() 검사 추가로 해결됩니다.
💡 쉬운 설명
리눅스 시스템의 오디오 드라이버가 클록 설정 오류를 무시하여 컴퓨터가 멈출 수 있습니다. 오류 확인 코드를 추가하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ASoC: amd: acp-mach-common: Add missing error check for clock acquisition
The acp_card_rt5682_init() and acp_card_rt5682s_init() functions did not
check the return values of clk_get(). This could lead to a kernel crash
when the invalid pointers are later dereferenced by clock core
functions.
Fix this by:
1. Changing clk_get() to the device-managed devm_clk_get().
2. Adding IS_ERR() checks immediately after each clock acquisition.
📍 영향받는 시스템
Linux kernel with AMD ACP (Audio CoProcessor) sound driver - RT5682/RT5682S audio codecs
⚔️ 공격 벡터
Local code execution via triggering audio driver initialization when loading the vulnerable driver module
🛡️ 대응 방법
Apply kernel patch updating acp_card_rt5682_init() and acp_card_rt5682s_init() to use devm_clk_get() and add IS_ERR() checks
🔧 검증 코드
If module info displayed, verify kernel version is 6.13 or later; if error/no output, AMD ACP driver not loaded (not vulnerable)
modinfo snd_soc_amd_acp 2>/dev/null | grep -q version && uname -r || echo 'Driver not installed'