🔍 CVE-2026-90295

0.0
CVSS Score
UNKNOWN
2026-09-17
2026-10-19 09:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 imx6q cpufreq 드라이버에서 드라이버가 여러 번 프로브될 때 경계 외 쓰기(Out-of-bounds write)가 발생하는 취약점입니다. 정적 저장소를 사용하는 soc_opp_count 변수가 초기화되지 않아, 드라이버 재바인딩 시 할당된 배열의 범위를 초과하여 메모리에 데이터를 기록하게 됩니다.

💡 쉬운 설명

컴퓨터 부품을 제어하는 소프트웨어가 다시 실행될 때, 이전에 사용했던 숫자를 그대로 사용하여 정해진 메모리 공간을 넘어서 데이터를 적는 오류입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: cpufreq: imx6q: fix out-of-bounds write when probed more than once imx6_soc_volt is allocated fresh on every probe, sized to the number of ARM OPPs: imx6_soc_volt = devm_kcalloc(cpu_dev, num, sizeof(*imx6_soc_volt), GFP_KERNEL); but it is filled through soc_opp_count, which has static storage and is never reset. A second bind after an unbind keeps indexing from where the first one stopped, and writes past the end of the new array. Unbinding and rebinding the driver on qemu's mcimx6ul-evk, under KASAN: BUG: KASAN: slab-out-of-bounds in imx6q_cpufreq_probe+0x3b0/0xa34 Write of size 4 at addr c5e90480 by task binder/73 imx6q_cpufreq_probe from platform_probe+0x88/0xe4 platform_probe from really_probe+0x108/0x384 bind_store from kernfs_fop_write_iter+0x1b4/0x28c The write lands one u32 past the end of the allocation. soc_opp_count is only read a few lines below the loop that fills it, so it never needed static storage. Make it a local.

📍 영향받는 시스템

Linux kernel (imx6q cpufreq driver component)

⚔️ 공격 벡터

로컬 권한을 가진 공격자가 드라이버를 언바인드(Unbind) 후 재바인드(Rebind)하여 메모리 오염 유도

🛡️ 대응 방법

커널 패치를 적용하여 soc_opp_count를 정적 변수에서 지역 변수로 변경

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 확인

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel