CVE-2026-15892 in Zephyr
요약
\~에 의해 VulDB • 2026. 09. 14.
mcumgr의 SMP settings-management 그룹 핸들러인 subsys/mgmt/mcumgr/grp/settings_mgmt/src/settings_mgmt.c 내의 settings_mgmt_read(), settings_mgmt_write() 및 settings_mgmt_delete() 함수는 CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP가 활성화된 경우 k_malloc()을 통해 key_name 버퍼(읽기 작업의 경우 data 버퍼 포함)를 할당하며, end: 레이블에서 k_free()하여 이를 해제하는 데 의존합니다. CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK도 활성화되어 있고 애플리케이션 액세스 후크가 MGMT_CB_ERROR_RC 상태 코드를 반환하여 요청을 거부할 경우, 핸들러는 직접 return ret_rc;를 실행하여 end: 레이블을 우회하므로 각 거부된 요청마다 힙 할당이 누출됩니다.
이 설정 핸들러들은 인증되지 않은 SMP 전송(제품 구성에 따라 Bluetooth LE, UART 또는 UDP)을 통해 접근 가능합니다. 액세스 후크는 애플리케이션이 무단 설정 접근을 차단하는 데 사용하는 메커니즘이며, MGMT_CB_ERROR_RC는 일반적인 거부 방식입니다. 따라서 후크가 거부하도록 설계된 설정 읽기/쓰기/삭제 명령을 보낼 수 있는 공격자는 각 시도마다 힙 누출을 유발합니다.
누출된 메모리는 재부팅 전까지 회수되지 않으므로, 거절된 요청의 지속적인 스트림은 커널 힙을 단조롭게 고갈시켜 k_malloc()이 실패하게 되고, 이는 mcumgr 서비스를 거부하며 장치상의 다른 모든 힙 소비자에도 영향을 미칩니다. 즉, 서비스 거부(Denial of Service)입니다. 영향은 가용성(Availability)에만 국한되며, 메모리 손상이나 정보 유출은 없습니다. 힙 버퍼 유형을 선택하고 액세스 후크를 활성화하며 MGMT_CB_ERROR_RC를 반환하는 후크를 등록한 구성만 영향을 받습니다(기본 스택 버퍼 유형은 누출되지 않음).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.