SDK прошивки Golioth версии 0.10.0 до 0.22.0, исправленный в коммите d7f55b38, содержит чтение за пределами границ при анализе строки состояния LightDB. При обработке строковых полезных данных значение payload_size меньше 2 может привести к потере значения size_t при вычислении количества копируемых байтов (нбайт). Последующий вызов memcpy() считывает данные за пределы сетевого буфера, что может привести к сбою устройства.
Условие достижимо из on_payload, и golioth_payload_is_null() не блокирует payload_size==1. Вредоносный сервер или MITM могут вызвать отказ в обслуживании.
Показать оригинальное описание (EN)
Golioth Firmware SDK version 0.10.0 prior to 0.22.0, fixed in commit d7f55b38, contain an out-of-bounds read in LightDB State string parsing. When processing a string payload, a payload_size value less than 2 can cause a size_t underflow when computing the number of bytes to copy (nbytes). The subsequent memcpy() reads past the end of the network buffer, which can crash the device. The condition is reachable from on_payload, and golioth_payload_is_null() does not block payload_size==1. A malicious server or MITM can trigger a denial of service.
Характеристики атаки
Последствия
Строка CVSS v4.0