Ad

CVE-2026-8718

HIGH CVSS 3.1: 8,4
Обновлено 11 августа 2026
Zephyrproject
Параметр Значение
CVSS 8,4 (HIGH)
Тип уязвимости CWE-787 (Запись за пределами буфера)
Поставщик Zephyrproject
Публичный эксплойт Нет

tls_opt_dtls_peer_connection_id_value_get() в subsys/net/lib/sockets/sockets_tls.c, который обрабатывает gotockopt(SOL_TLS, TLS_DTLS_PEER_CID_VALUE), передал предоставленный вызывающей стороной optval непосредственно в mbedtls_ssl_get_peer_cid() без проверки размера буфера MBEDTLS_SSL_CID_OUT_LEN_MAX (по умолчанию 32) байт. mbedtls_ssl_get_peer_cid() копирует идентификатор однорангового соединения DTLS (длина 1..MBEDTLS_SSL_CID_OUT_LEN_MAX) в этот буфер без параметра размера назначения, поэтому предоставленный вызывающей стороной optlen, меньший, чем CID, вызывает запись до 31 байта за конец буфера. В CONFIG_USERSPACE создается верификатор системного вызова gotockopt (z_vrfy_zsock_getsockopt), который буферизует optval пользователя в выделение ядра ровно в optlen байтах (k_usermode_alloc_from_copy -> z_thread_malloc), поэтому непривилегированный пользовательский поток, который передает небольшой optlen в подключенный сокет DTLS с включенным идентификатором соединения, вызывает Переполнение буфера кучи ядра, при этом переполненное содержимое является CID удаленного узла. Дефект требует CONFIG_MBEDTLS_SSL_DTLS_CONNECTION_ID, установленного сеанса DTLS с согласованным одноранговым CID и (для случая пересечения ядра) CONFIG_USERSPACE.

Представлено, когда был добавлен параметр TLS_DTLS_CID (v3.5.0). Исправление отклоняет вызывающие абоненты, чей optlen ниже MBEDTLS_SSL_CID_OUT_LEN_MAX с -EINVAL.

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

tls_opt_dtls_peer_connection_id_value_get() in subsys/net/lib/sockets/sockets_tls.c, which handles getsockopt(SOL_TLS, TLS_DTLS_PEER_CID_VALUE), passed the caller-supplied optval directly to mbedtls_ssl_get_peer_cid() without verifying the buffer was at least MBEDTLS_SSL_CID_OUT_LEN_MAX (default 32) bytes. mbedtls_ssl_get_peer_cid() copies the peer-negotiated DTLS Connection ID (length 1..MBEDTLS_SSL_CID_OUT_LEN_MAX) into that buffer without a destination-size parameter, so a caller-supplied optlen smaller than the CID causes a write of up to 31 bytes past the buffer end. In CONFIG_USERSPACE builds the getsockopt syscall verifier (z_vrfy_zsock_getsockopt) bounce-buffers the user's optval into a kernel allocation of exactly optlen bytes (k_usermode_alloc_from_copy -> z_thread_malloc), so an unprivileged user thread that passes a small optlen on a connected DTLS socket with Connection ID enabled induces a kernel-heap buffer overflow, with the overflowing content being the remote peer's CID. The defect requires CONFIG_MBEDTLS_SSL_DTLS_CONNECTION_ID, an established DTLS session with a negotiated peer CID, and (for the kernel-crossing case) CONFIG_USERSPACE. Introduced when the TLS_DTLS_CID option was added (v3.5.0). The fix rejects callers whose optlen is below MBEDTLS_SSL_CID_OUT_LEN_MAX with -EINVAL.

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

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

Последствия

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

Строка CVSS v3.1

Уязвимые продукты

zephyrproject:zephyr