CVE-2026-19937 in ZephyrИнформация

Сводка

по VulDB • 13.10.2026

Задержка сообщений на уровне доступа Bluetooth Mesh в модуле subsys/bluetooth/mesh/delayable_msg.c управляет статическим пулом контекстов сообщений (CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_COUNT, по умолчанию 4), которые помещаются в списки free_ctx или busy_ctx. Функция release_delayable_msg_ctx() возвращала контекст в список free_ctx только тогда, когда sys_slist_find_and_remove() находила его в списке busy_ctx. Путь обработки ошибки при исчерпании чанков (chunk-exhaustion error path) в bt_mesh_delayable_msg_manage() освобождал контекст, который уже был извлечен из списка free_ctx, но еще не добавлен в список busy_ctx; таким образом, этот контекст не попадал ни в один из списков и безвозвратно терялся из пула. Поскольку функция bt_mesh_delayable_msg_init() вызывается только один раз при запуске bt_mesh_init(), а сброс или приостановка узла очищают только список busy_ctx, потеря сохраняется после отмены провижининга (unprovision), повторного провижининга и операций suspend/resume — она устраняется только перезагрузкой устройства.

Этот путь ошибки активируется, когда пул чанков (CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CHUNK_COUNT, по умолчанию 40 чанков) исчерпан для нового отложенного сообщения, а самое старое ожидающее сообщение не может быть отправлено, поскольку bt_mesh_access_send() возвращает -EBUSY или -ENOBUFS (все контексты сегментированной передачи заняты или буферы рекламы/сегментов исчерпаны). Узел-участник сети Mesh, имеющий действительный NetKey и AppKey или DevKey, привязанные к модели сервера, может спровоцировать оба условия путем флуда жертвы запросами, вызывающими сегментированные ответы, при этом удерживая Segment Acknowledgment (подтверждение получения сегмента), что сохраняет контексты передачи занятыми, а очередь ответов — держит пул чанков. Каждый последующий входящий в это окно запрос приводит к утечке одного контекста.

После опустошения пула bt_mesh_delayable_msg_manage() возвращает -ENOMEM для каждой последующей отправки, а bt_mesh_model_send() распространяет эту ошибку без перехода на немедленную передачу (immediate transmit). Поскольку CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG и CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CTX_ENABLED включены по умолчанию, поле ctx->rnd_delay устанавливается для каждого полученного сообщения доступа; следовательно, все ответы от моделей Configuration Server, Health Server и серверов приложений молча отбрасываются. Узел продолжает получать и обрабатывать трафик, но никогда не отвечает, что приводит к устойчивому отказу в обслуживании (DoS) до перезагрузки устройства. Утечка памяти, раскрытие информации или нарушение целостности отсутствуют; выпуски перед исправлением вычисляли количество чанков на основе емкости буфера передачи, а не длины полезной нагрузки, что делает голодание пула чанков — и, следовательно, утечку контекстов — значительно легче спровоцировать.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

Zephyr

Резервировать

15.08.2026

Раскрытие

13.10.2026

Модерация

принято

Вход

VDB-417353

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!