Ad

CVE-2026-71256

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

nanoMODBUS до версии 1.23.0 содержит чтение стека за пределами границ, приводящее к записи с диким указателем в nmbs_read_device_identification_basic()/recv_read_device_identification_res() в nanomodbus.c. Фиксированный массив стека из трех элементов order[3] = {0,1,2} сопоставляет идентификаторы объектов с индексами буфера. Поле object_id, предоставленное сервером (0–255, считывается непосредственно из сети), используется без какой-либо проверки границ как buf_index = order[object_id].

Когда злонамеренный сервер Modbus отправляет ответ Read Device Identification с object_id >= 3, он считывает байт за пределами границ/мусора из стека, примыкающего к order[], который затем используется в качестве индекса в 3-элементном массиве buffers[] указателей char*. Результирующий дикий указатель передается в strncpy() в качестве места назначения, что приводит к записи данных, управляемых сервером, по произвольному адресу.

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

nanoMODBUS through v1.23.0 contains an out-of-bounds stack read leading to a wild-pointer write in nmbs_read_device_identification_basic / recv_read_device_identification_res in nanomodbus.c. A fixed 3-element stack array order[3] = {0,1,2} maps object IDs to buffer indices. The server-supplied object_id field (0-255, read directly from the wire) is used without any bounds check as buf_index = order[object_id].

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

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

Последствия

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

Строка CVSS v3.1