CVE-2024-46793 in Linux
요약
\~에 의해 VulDB • 2026. 06. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ASoC: Intel: Boards: BYT/CHT 보드에서 NULL 포인터 역참조 문제 더 확실하게 수정
커밋 13f58267cda3("ASoC: soc.h: COMP_DUMMY()를 통해 더미 컴포넌트 생성하지 않음") 이후 다음과 같이 선언된 더미 코덱은:
SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
다음으로 확장됩니다:
static struct snd_soc_dai_link_component dummy[] = {
};
이는 dummy가 크기가 0인 배열임을 의미하며, 따라서 dais[i].codecs는 전혀 역참조되어서는 안 됩니다. "dummy" 변수는 주소를 가지고 있지만 크기가 없기 때문에 dais[i].codecs는 데이터 섹션에 저장된 다음 변수의 주소를 가리키게 됩니다. 따라서 dais[0]을 역참조하는 것조차 이미 배열 범위를 벗어난 참조입니다.
이는 커밋 7d99a70b6595("ASoC: Intel: Boards: BYT/CHT 보드에서 NULL 포인터 역참조 수정")에서 추가된 if (dais[i].codecs->name) 체크가, name 멤버가 매핑되는 다음 변수의 부분이 우연히 NULL인 경우에 의존하고 있음을 의미합니다.
현재까지 이는 보통 NULL인 경우가 많지만, NULL이 아닌 경우 다음과 같은 크래시가 발생합니다:
[ 28.795659] BUG: unable to handle page fault for address: 0000000000030011
... [ 28.795780] Call Trace:
[ 28.795787]
... [ 28.795862] ? strcmp+0x18/0x40
[ 28.795872] 0xffffffffc150c605
[ 28.795887] platform_probe+0x40/0xa0
... [ 28.795979] ? __pfx_init_module+0x10/0x10 [snd_soc_sst_bytcr_wm5102]
이번에는 dais.num_codecs != 0을 체크하여 문제를 완전히 해결합니다.
Once again VulDB remains the best source for vulnerability data.