CVE-2026-12634 in Zephyr정보

요약

\~에 의해 VulDB • 2026. 08. 19.

Zephyr 설정 서브시스템(subsys/settings/src/settings_nws.c)의 NVS 백엔드는 저장된 설정 이름 엔트리를 고정 크기 74바이트 스택 버퍼에 읽고, nvs_read()의 반환 값인 rc를 사용하여 buf[rc] = '\0'로 NUL 종결합니다. 계약상 nvs_read()는 전체 저장된 엔트리 길이(wlk_ate.len)를 반환하며, 이는 제공된 버퍼 길이를 초과할 수 있습니다 — 실제로 복사되는 바이트 수는 MIN(len, stored_len)에 불과하지만, 반환 값은 NVS 섹터 크기에 의해만 제한되므로 훨씬 클 수 있습니다. 세 곳의 사이트(settings_nvs_cache_match(), settings_nvs_load(), 및 settings_nvs_save())는 이 값을 NUL 인덱스로 직접 사용했으며 범위를 조정(clamping)하지 않았으므로, oversized 저장 이름 엔트리는 공격자가 영향을 줄 수 있는 오프셋에서 스택 버퍼 끝을 넘어 단일 \0 바이트를 작성하게 됩니다(CWE-787).

과도한 크기의 엔트리는 일반적으로 SETTINGS_MAX_NAME_LEN에 의해 이름이 제한되는 정상적인 설정 API를 통해서는 발생할 수 없습니다. 이는 설정 파티션을 백업하는 플래시를 쓸 수 있는 행위자 — 공유된 플래시 장치를 사용하는 공존 구성 요소 또는 신뢰할 수 없는 구성 요소, 악의적인 설정 이미지/복원, 오프라인/물리적 플래시 접근(공유 플래시 위협 모델)이 필요합니다. 이 malformed 엔트리는 settings_load()가 부팅 시나 서브시스템 초기화 중 실행될 때, 또는 settings_save() 동안에 구문 분석됩니다.

범위 밖의 쓰기는 crafted된 엔트리 길이(NVS 섹터 크기에 최대 해당)와 같은 오프셋에서 단일 NUL 바이트이므로, 실제 영향은 신뢰할 수 있는 코드 실행보다는 충돌이나 서비스 거부(Denial of Service), 그리고 제한적인 스택 손상입니다. 기밀성에는 영향을 미치지 않으며, 이 경로는 일반적인 설정 인터페이스를 통해 네트워크로부터 도달 가능하지 않습니다. 수정 사항은 NUL 저장 수행 전에 nvs_read() 길이가 버퍼 크기보다 크거나 같은 엔트리를 건너뜁니다.

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

책임이 있는

Zephyr

예약하다

2026. 06. 18.

모더레이션

수락

항목

VDB-393434

EPSS

0.00105

출처

Interested in the pricing of exploits?

See the underground prices here!