Уязвимость в OpenSSL высокого уровня опасности может привести к утечке памяти кучи на другую сторону DTLS-соединения или к сбою программы, как сообщила компания OpenSSL 29 сентября, выпустив исправления. DTLS, вариант TLS, используемый для UDP-трафика, повторно отправляет сообщение рукопожатия, если ответ не поступает до истечения таймера. Утечка или сбой могут произойти, когда такая повторная отправка начинается, пока большое сообщение рукопожатия застряло на полпути при отправке.
Уязвимость, отслеживаемая как CVE-2026-84782, исправлена в версиях OpenSSL 4.0.3, 3.6.5, 3.5.9 и 3.4.8. Исправленные версии для старых веток 3.0, 1.1.1 и 1.0.2 предоставляются только клиентам, которые платят за премиальную поддержку OpenSSL. Публичные исправления безопасности для OpenSSL 3.0 прекратились 7 сентября.
OpenSSL не уточнила, может ли злоумышленник вызвать повторную отправку, пока сообщение застряло, и не сообщала об атаках, использующих эту уязвимость. DTLS используется, например, для защиты каналов данных WebRTC и для установки ключей шифрования для интернет-звонков. Программное обеспечение подвержено этой уязвимости только в том случае, если оно использует OpenSSL для DTLS.
DTLS разбивает большое сообщение рукопожатия на фрагменты, каждый из которых помещается в один UDP-дейтаграмму. Если соединение в данный момент не может принять больше данных, отправка может приостановиться на полпути при передаче сообщения и возобновиться позже. Пока отправка приостановлена, таймер повторной отправки все еще может сработать и отправить предыдущее сообщение снова.
До исправления повторная отправка использовала позицию приостановленного сообщения в буфере вместо возврата к началу отправляемого сообщения. Повторно отправленное сообщение было отправлено с неправильной меткой. Его тело состояло из оставшихся байтов из большего сообщения, и чтение его могло привести к переполнению буфера.
По данным OpenSSL, неправильно помеченное сообщение может передать память кучи на другую сторону в виде незашифрованных данных рукопожатия. Если чтение достигает некартографированной памяти, программа аварийно завершает работу. OpenSSL не ограничивает уязвимость клиентами или серверами DTLS, и исправление было протестировано в обеих ролях.
Лоран Гаффи из Secorizon сообщил об уязвимости 17 августа, а Райан Хупер разработал исправление. OpenSSL оценивает уязвимость как «Высокую», на один уровень ниже «Критического» по шкале серьезности. Политика безопасности проекта рекомендует как можно скорее устанавливать обновления с исправлениями высокого уровня.
CISA присвоила уязвимости оценку CVSS 8.2 из 10 29 сентября, оценив ее влияние на конфиденциальность как низкое, а на доступность — как высокое. В записи CISA на тот момент было указано, что эксплуатация отсутствует. OpenSSL не использует CVSS для определения своих рейтингов серьезности и заявляет, что оценки от сторонних организаций могут значительно отличаться от них.
В уведомлении безопасности Ubuntu говорится, что злоумышленник потенциально может использовать уязвимость для вызова «некорректного поведения рукопожатия или отказа в обслуживании». Утечка памяти не упоминается. Уязвимость затрагивает OpenSSL 4.0, 3.6, 3.5, 3.4, 3.0, 1.1.1 и 1.0.2 во всех выпусках до исправленной версии, указанной ниже.
OpenSSL не предлагает обходных путей для пользователей, которые еще не могут обновиться. Ubuntu исправила уязвимость 29 сентября в своих пакетах, которые сохраняют старые номера версий OpenSSL: для Ubuntu 22.04 и 24.04, использующих OpenSSL 3.0, исправление уже доступно в указанных выше пакетах. Пользователям Ubuntu требуется перезагрузка после обновления для применения всех изменений.
Debian исправила уязвимость в Debian 13 версией 3.5.7-1~deb13u3 пакета openssl, выпущенной как DSA-6531-1. Ее трекер безопасности по состоянию на 07:36 UTC 30 сентября все еще указывал Debian 12 как уязвимый. Последним публичным выпуском 3.0 был 3.0.22 от 25 августа. Версия 3.0.23 — это первый выпуск безопасности 3.0, который OpenSSL не сделала публичным. Он исправляет 6 из 14 уязвимостей, раскрытых 29 сентября, включая CVE-2026-84782.
Для Ubuntu 22.04 и 24.04, использующих OpenSSL 3.0, исправление уже доступно в указанных выше пакетах. Любой, кто компилирует OpenSSL 3.0 или поставляет его копию в своем программном обеспечении, не имеет публичного исправления от OpenSSL. OpenSSL рекомендует обновиться до более новой ветки, такой как 4.0 или версия с долгосрочной поддержкой 3.5. Другой вариант — платный контракт на поддержку, который обеспечивает постоянный доступ к исправлениям безопасности для выпусков, срок поддержки которых истек.
Релизы от 29 сентября исправляют 13 других уязвимостей. Наиболее серьезная из них, CVE-2026-84783, имеет рейтинг «Умеренный» и затрагивает только OpenSSL 4.0. Удаленный неаутентифицированный узел может использовать ее для сбоя многопоточного TLS-клиента или многопоточного TLS-сервера, запрашивающего клиентские сертификаты. Это может произойти только в том случае, если несколько соединений одновременно строят свои первые цепочки сертификатов к одному и тому же доверенному сертификату ЦС.
Другая уязвимость DTLS, CVE-2026-75806, имеет рейтинг «Низкий». Она затрагивает установленные DTLS 1.2 соединения, использующие AEAD-шифр. Любой, кто может отправить дейтаграмму на такое соединение, может завершить его одной слишком короткой дейтаграммой, не зная ключей. Остальные 11 уязвимостей также имеют рейтинг «Низкий» и включают 5 в коде QUIC OpenSSL и 3 побочных канала времени в коде ECDSA и SM2.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




