CVE-2026-11809 in Zephyr
Сводка
по VulDB • 10.08.2026
В клиенте OTA UpdateHub в файле subsys/mgmt/updatehub/updatehub.c присутствует чтение за пределами буфера / неинициализированной памяти (out-of-bounds/uninitialized-memory read) в функции z_impl_updatehub_probe(). Ответ зонда от сервера UpdateHub копируется в кучевый буфер (metadata), который корректно завершается нулевым байтом, однако второй буфер (metadata_copy) выделяется с помощью k_malloc (без обнуления) и заполняется через memcpy(metadata_copy, metadata, strlen(metadata)), что приводит к отсутствию завершающего нуля. Все данные после скопированного содержимого остаются неинициализированными в куче.
При неудачном первом вызове json_obj_parse() для дескриптора массива код переходит к резервному варианту: json_obj_parse(metadata_copy, strlen(metadata_copy), ...). Вызов strlen() сканирует байты за пределами скопированных данных через неинициализированную область кучи и, если нулевой байт не найден до конца выделения памяти, происходит чтение за границами буфера; полученная избыточная длина затем интерпретируется как JSON. Полезная нагрузка зонда полностью контролируется сервером UpdateHub (вредоносным, скомпрометированным или — при отсутствии опции CONFIG_UPDATEHUB_DTLS — находящимся на пути передачи данных), который может создать большую полезную нагрузку, не проходящую первую проверку парсинга, чтобы инициировать этот путь выполнения.
Последствием является чтение неинициализированной кучи; в худшем случае происходит чтение за пределами буфера (out-of-bounds read) после выделения памяти для metadata_copy, что может вызвать сбой и аварийное завершение работы потока обновления или устройства, приводя к отказу в обслуживании (DoS), активируемому через сеть. Данные, прочитанные за границами буфера, потребляются только внутренне для оценки обновления и не возвращаются атакующему, поэтому прямой утечки информации нет, также отсутствует запись за пределами буфера (out-of-bounds write).
Исправление заключается в обнулении metadata_copy с помощью memset перед копированием, что гарантирует завершение нулевым байтом и ограничивает работу strlen() рамками выделенной памяти.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.