SDK прошивки Golioth версии 0.19.1 до 0.22.0, исправленной в коммите 0e788217, содержит чтение за пределами допустимого диапазона из-за неправильного нулевого завершения пути блочной передачи. blockwise_transfer_init() принимает путь, длина которого равна CONFIG_GOLIOTH_COAP_MAX_PATH_LEN, и копирует его с помощью strncpy(), не гарантируя наличие конечного NUL-байта, оставляя ctx->path незавершенным. Более поздняя функция strlen() в этом буфере (в golioth_coap_client_get_internal()) может прочитать конец выделения, что приведет к сбою или отказу в обслуживании. Ввод управляется приложением (по умолчанию не сетью).
Показать оригинальное описание (EN)
Golioth Firmware SDK version 0.19.1 prior to 0.22.0, fixed in commit 0e788217, contain an out-of-bounds read due to improper null termination of a blockwise transfer path. blockwise_transfer_init() accepts a path whose length equals CONFIG_GOLIOTH_COAP_MAX_PATH_LEN and copies it using strncpy() without guaranteeing a trailing NUL byte, leaving ctx->path unterminated. A later strlen() on this buffer (in golioth_coap_client_get_internal()) can read past the end of the allocation, resulting in a crash/denial of service. The input is application-controlled (not network by default).
Характеристики атаки
Последствия
Строка CVSS v4.0