Ad

CVE-2026-71254

CRITICAL CVSS 3.1: 9,8 EPSS 0.31%
Обновлено 10 августа 2026
nanoMODBUS
Параметр Значение
CVSS 9,8 (CRITICAL)
Тип уязвимости CWE-787 (Запись за пределами буфера)
Поставщик nanoMODBUS
Публичный эксплойт Нет

nanoMODBUS до версии 1.23.0 содержит запись за пределами границ в серверной функции handle_read_file_record() (FC 0x14, чтение записи файла) в nanomodbus.c. Функция проверяет, что общий размер запроса не превышает 245 байт и что длина записи каждого подзапроса не превышает 124, но она никогда не проверяет Совокупный размер ответа для всех подзапросов перед их обработкой. Аккумулятор response_data_size объявляется как uint8_t и увеличивается на 2 + Record_length*2 для каждого из до 35 подзапросов; с 35 подзапросами Record_length = 124 совокупный запрос составляет 8750 байт, что переполняет аккумулятор uint8_t.

Последующий цикл затем вызывает get_n(), внутреннюю функцию без проверки границ, один раз для каждого подзапроса, чтобы получить указатель на 260-байтовый буфер приема msg.buf, и увеличивает внутренний buf_idx до 248 байт за вызов; swap_regs() затем безоговорочно записывает в этот указатель. Одиночный запрос FC 0x14 от неаутентифицированного сетевого клиента может привести к записи до ~8490 байт за пределы 260-байтового буфера, повреждая соседнюю память в серверном процессе и приводя к отказу в обслуживании или потенциальному удаленному выполнению кода, особенно на встроенных/голых устройствах без защиты памяти.

Показать оригинальное описание (EN)

nanoMODBUS through v1.23.0 contains an out-of-bounds write in the Modbus server-side handle_read_file_record function (FC 0x14, Read File Record) in nanomodbus.c. The function validates that the total request size does not exceed 245 bytes and that each sub-request's record_length is at most 124, but it never validates the CUMULATIVE response size across all sub-requests before processing them.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1