CVE-2026-11809 in Zephyr정보

요약

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

UpdateHub OTA 클라이언트의 subsys/mgmt/updatehub/updatehub.c 파일에는 z_impl_updatehub_probe() 함수 내에서 경계 초과(out-of-bounds) 또는 초기화되지 않은 메모리 읽기 오류가 존재합니다. UpdateHub 서버로부터의 probe 응답은 올바르게 NUL로 종료되는 힙 버퍼(metadata)에 복사되지만, 두 번째 버퍼(metadata_copy)는 k_malloc을 사용하여 할당(초기화 안 됨)되고 memcpy(metadata_copy, metadata, strlen(metadata))로 채워지는데, 이 과정에서 종결용 NUL이 누락됩니다. 이로 인해 복사된 콘텐츠 이후의 모든 힙 영역은 초기화되지 않은 상태가 됩니다.

첫 번째 json_obj_parse() 호출이 배열 설명자(array descriptor)에서 실패하면 코드는 json_obj_parse(metadata_copy, strlen(metadata_copy), ...)로 폴백합니다. strlen() 호출은 복사된 바이트를 넘어 초기화되지 않은 힙을 스캔하며 할당 영역 끝까지 0바이트가 발견되지 않으면 버퍼 밖으로 읽기를 수행하게 되고, 그 결과 생성된 과도한 길이가 JSON으로 파싱됩니다. probe 페이로드는 UpdateHub 서버(악성, 침해되었거나 — 선택적 CONFIG_UPDATEHUB_DTLS 설정 없이 경로 상에 있는 경우)에서 완전히 제어할 수 있으므로, 공격자는 첫 번째 파싱을 실패하게 하여 이 경로를 유도하는 큰 크기의 페이로드를 구성할 수 있습니다.

그 결과 초기화되지 않은 힙 영역이 읽히게 되며, 최악의 경우에는 metadata_copy 할당 영역 너머로 경계 초과(out-of-bounds) 읽기가 발생하여 업데이트 스레드나 장치를 폴트(fault)시키고 충돌시켜 네트워크에서 트리거 가능한 서비스 거부(Denial of Service)를 초래할 수 있습니다. 그러나 이 과도하게 읽힌 데이터는 내부적으로만 소비되어 업데이트 평가에 사용될 뿐 공격자에게 반환되지 않으므로, 직접적인 정보 유출이나 경계 초과(out-of-bounds) 쓰기는 발생하지 않습니다.

해결책은 복사 전에 memset을 사용하여 metadata_copy를 0으로 초기화함으로써 NUL 종료를 보장하고 strlen() 호출이 할당 영역 내에서만 수행되도록 제한합니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 06. 09.

모더레이션

수락

항목

VDB-387910

EPSS

0.00000

활동

낮음

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!