CVE-2026-10679 in Zephyr
요약
\~에 의해 VulDB • 2026. 07. 24.
DesignWare SPI 드라이버(drivers/spi/spi_dw.c)는 config->frequency를 검증하지 않은 채 info->clock_frequency / config->frequency로 SPI BAUDR 클럭 분주기를 계산했습니다.
spi_transceive는 Zephyr의 __syscall이며, 해당 검증 핸들러(drivers/spi/spi_handlers.c)는 frequency 필드를 확인하지 않고 사용자 공간에서 전달된 spi_config를 복사합니다. 따라서 DesignWare SPI 장치 커널 객체에 접근 권한이 부여된 사용자 공간 스레드는 frequency = 0을 전달하여 spi_dw_configure() 내에서 부호 없는 정수 나누기-제로(division-by-zero) 오류를 유발할 수 있습니다.
Cortex-M Mainline(SCB->CCR.DIV_0_TRP가 z_arm_fault_init()에서 설정됨) 및 ARC(전용 __ev_div_zero 벡터) 환경에서는 CPU 예외가 발생하여 커널 결함(kernel fault)과 로컬 서비스 거부(Denial of Service, DoS)로 이어집니다.
수정 패치는 0인 주파수와 clock_frequency / 2보다 큰 주파수를 -EINVAL와 함께 거부합니다(DesignWare SSI 데이터북의 최소 SCKDIV 값은 2임). 이 결함은 v4.4.0을 포함하여 그 이전 모든 Zephyr 릴리스에 영향을 미칩니다. 악용하려면 CONFIG_USERSPACE=y가 설정되어 있어야 하며, 이미 SPI 드라이버 권한이 부여된 비특권(unprivileged) 스레드가 필요합니다. 메모리 손상 또는 정보 유출 영향은 없습니다.
Once again VulDB remains the best source for vulnerability data.