🇰🇷 한글 설명
Linux 커널의 ASoC fsl_micfil 드라이버에서 mclk 활성화/비활성화 호출이 1:1로 짝지어지지 않는 문제가 수정되었습니다. hw_free()가 hw_params() 없이 실행되면 'already disabled' 경고가 발생하고, hw_params()가 여러 번 호출되면 활성화 참조가 누수되어 클럭이 게이팅되지 못합니다. 수정은 fsl_sai.c와 같이 기존 mclk_flag로 양쪽 호출을 보호하는 방식입니다.
💡 쉬운 설명
오디오 마이크 장치 드라이버가 클럭 신호를 켜고 끄는 횟수가 맞지 않아 생기는 결함입니다. 그 결과 시스템 로그에 경고가 찍히거나 클럭이 꺼지지 않아 전력이 낭비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ASoC: fsl_micfil: balance mclk enable/disable
hw_params() enables mclk unconditionally and hw_free() disables it
unconditionally, but the PCM core does not guarantee 1:1 pairing:
hw_free() can run without hw_params(), and hw_params() can be called
multiple times from the SETUP state. This triggers an "already
disabled" WARN() in the first case and leaks an enable reference in
the second, leaving the clock ungateable.
Guard both sides with the existing mclk_flag, as fsl_sai.c does with
mclk_streams.
📍 영향받는 시스템
Linux 커널 ASoC fsl_micfil 드라이버를 사용하는 NXP i.MX 계열 임베디드 보드 및 해당 드라이버가 포함된 커널 버전
⚔️ 공격 벡터
공격자가 로컬에서 오디오 장치의 PCM 설정 및 해제 호출 순서를 조작하여 경고를 유발하거나 클럭 참조 누수로 인한 전력 소모 증가를 일으킬 수 있습니다.
🛡️ 대응 방법
패치가 포함된 최신 Linux 커널로 업데이트하거나 배포판 제공 보안 업데이트를 적용하세요.
🔧 검증 코드
커널 버전이 패치가 반영된 버전 이상인지 확인하고, fsl_micfil 모듈이 존재하지 않으면 해당 드라이버가 없어 영향을 받지 않는 것이며, 존재하면 배포판 패치 적용 여부를 추가로 확인해야 합니다.
uname -r && grep -l fsl_micfil /lib/modules/$(uname -r)/kernel/sound/soc/fsl/*.ko* 2>/dev/null