CVE-2026-17052 in Zephyr정보

요약

\~에 의해 VulDB • 2026. 09. 21.

drivers/timeaware_gpio/timeaware_gpio_handlers.c의 z_vrfy_tgpio_pin_read_ts_ec() Time-aware GPIO syscall 검증 핸들러는 포트 디바이스 객체만 유효성 검사했으며, 호출자가 제공한 timestamp 및 event_count 출력 포인터를 K_SYSCALL_MEMORY_WRITE() 확인 없이 드라이버에 전달했습니다. 같은 파일 내 다른 핸들러(z_vrfy_tgpio_port_get_time(), z_vrfy_tgpio_port_get_cycles_per_second())는 이미 해당 검사를 수행했으므로, 누락으로 인해 하나의 syscall이 보호되지 않은 상태가 되었습니다.

tgpio_pin_read_ts_ec()는 __syscall로 선언되어 있으므로 CONFIG_USERSPACE=y 설정 시 TGPIO 디바이스 객체에 대한 접근 권한을 부여받은 비특권 사용자 모드 스레드가 임의의 포인터 값을 사용하여 이를 호출할 수 있습니다. drivers/timeaware_gpio/timeaware_gpio_intel.c의 tgpio_intel_read_ts_ec()는 핀 인덱스에 대해서만 경계 검사를 수행한 후, timestamp = ... 및 event_count = ...를 조건 없이 실행하여 사용자 모드 호출자가 선택한 주소에서 supervisor 모드로 두 개의 8바이트 저장을 수행합니다.

그 결과로 userspace/kernel 경계를 넘는 write-what-where 원시 연산(write-what-where primitive)이 발생합니다: 대상 주소는 공격자가 완전히 선택할 수 있으며 저장되는 값은 하드웨어 시간 캡처 및 이벤트 카운터 레지스터의 내용입니다. 이렇게 커널 데이터 구조를 손상시키면 호출 스레드가 supervisor 특권으로 승격되거나 시스템이 충돌할 수 있습니다; 필요한 디바이스 객체 권한은 커널 메모리 접근을 부여하는 것이 의도되지 않은 좁은 기능(capability)입니다. 이 수정사항은 드라이버 호출 전에 누락된 두 가지 K_SYSCALL_MEMORY_WRITE() 검사를 추가합니다.

실제 노출 범위는 제한적입니다. CONFIG_USERSPACE=y 및 CONFIG_TIMEAWARE_GPIO=y가 설정된 빌드에서만 해당 파일이 컴파일되며, v3.6.0 이후에는 해당 파일이 추가로 재배치된 헤더를 참조하고 Z_SYSCALL_* 매크로를 제거했으므로 이러한 구성은 v4.4.0 이후에 수리될 때까지 빌드에 실패했습니다. 로컬에서 이 결함을 수정한 다운스트림 트리와 그 존재하지 않았던 v3.5.0 빌드가 노출된 대상입니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Zephyr

예약하다

2026. 07. 24.

모더레이션

수락

항목

VDB-408210

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!