wolfSSL 5.9.2: исправлено более 20 уязвимостей, включая обход проверки сертификатов и переполнение буфера в DTLS

wolfSSL

Библиотека для защиты каналов связи wolfSSL выпустила версию 5.9.2, закрывающую двадцать семь уязвимостей. Большинство из них имеют высокую степень опасности и затрагивают механизмы проверки сертификатов, обработку протоколов TLS и DTLS, а также криптографические операции. Проблемы обнаружили исследователи из Калифорнийского университета в Беркли, NVIDIA Project Vanessa, Anthropic, Cisco Talos и другие независимые эксперты.

Детали уязвимостей

Наиболее критичные ошибки связаны с функцией "X509_verify_cert()", которая реализует совместимость с OpenSSL. Две уязвимости (CVE-2026-11310 и CVE-2026-11999) позволяют злоумышленнику обойти проверку цепочки сертификатов. Первая возникает из-за того, что доверенные и недоверенные промежуточные сертификаты не разделялись при формировании цепочки - атакующий мог подставить собственный неподписанный корень, который верификатор ошибочно принимал за доверенный. Вторая проблема связана с исчерпанием глубины пути: при превышении максимальной длины цепочки (по умолчанию 100 звеньев) проверка завершалась успешно, даже если ни один из сертификатов не был доверенным. Обе уязвимости затрагивают только сборки с опцией "--enable-opensslextra" и приложения, вызывающие "X509_verify_cert()" с недоверенными промежуточными сертификатами. Нативный TLS-стек wolfSSL не подвержен риску. Исправления внесены в PR 10674.

Ещё одна серьёзная проблема (CVE-2026-6679) обнаружена в реализации DTLS 1.3 - переполнение кучи в сериализации ACK-пакетов. Ошибка возникала из-за целочисленного усечения при вычислении длины списка номеров записей, что приводило к выделению слишком маленького буфера и последующему выходу за его границы. Атака возможна до аутентификации пира, то есть потенциально удалённо. Исправление добавлено в версии 5.9.1, но выпущено вместе с обновлением 5.9.2.

Среди других уязвимостей высокой степени риска - запись за границы буфера в модуле Renesas TSIP для TLS 1.3 (CVE-2026-55958). При обработке необычно большой цепочки сертификатов или вредоносного сообщения функция "tsip_StoreMessage()" не возвращала управление после обнаружения переполнения фиксированного буфера, что приводило к повреждению кучи и отказу в обслуживании. Проблема затрагивает только встраиваемые системы на микроконтроллерах Renesas с аппаратным ускорителем TSIP.

Несколько уязвимостей касаются обхода цепочек доверия через подстановку необработанных открытых ключей (Raw Public Key, CVE-2026-55960) и приём сертификатов без подписей в формате PKCS#7 (CVE-2026-55961). В первом случае RPK-ключ принимался вместо X.509-сертификата без какой-либо проверки, даже если такой тип не был согласован. Во втором - проверка "PKCS7_verify()" возвращала успех для дегенеративного объекта PKCS#7, который не содержал подписантов. Оба исправления вошли в PR 10702.

Уязвимости средней степени включают обход ограничений на имена в сертификатах (CVE-2026-6731, CVE-2026-10592, CVE-2026-7532), проблемы с проверкой подписей в HMAC-функциях (CVE-2026-8720, CVE-2026-6330, CVE-2026-10097), а также слабости в обработке OCSP-ответов, PKCS#12 и пост-рукопожаточной аутентификации TLS 1.3. В нескольких случаях ошибки приводили к возможности подделки подписи или принятию неверного статуса отзыва сертификата.

Также исправлены уязвимости низкого уровня: недостаточная очистка старшего бита в реализации X25519 для x86_64, использование-after-free в обработке гибридных PQC-ключей, целочисленное переполнение в PKCS#7 и другие. Многие из них могли потенциально вызвать отказ в обслуживании или неправильную работу криптографических примитивов.

Библиотека wolfSSL широко применяется в устройствах интернета вещей, промышленных контроллерах и сетевом оборудовании. Владельцам таких систем, особенно использующих сборки с опциями "--enable-opensslextra" или DTLS 1.3, рекомендуется как можно скорее обновить библиотеку до версии 5.9.2. Для тех, кто использует только нативные TLS/DTLS без OpenSSL-совместимости и без включённых дополнительных модулей, риск ниже, но полное обновление всё равно остаётся лучшей практикой.

Разработчики отметили, что некоторые проблемы были внесены в определённые версии (начиная с 5.7.4 и 5.8.4), поэтому обновление требуется не всем пользователям. Однако, учитывая количество и серьёзность исправлений, переход на актуальную версию является оправданным для всех сценариев использования. Исходный код и бинарные сборки доступны на официальном сайте проекта.

Ссылки

Комментарии: 0