
OpenSSL исправил опасную уязвимость в DTLS, из-за которой сервер или клиент может отдать постороннему куски своей оперативной памяти в открытом виде, а то и просто рухнуть. Уязвимость получила номер CVE-2026-84782 и оценку 8.2 по CVSS. Она затрагивает и клиентов, и серверы, не требует авторизации, и запускает её тот, кто на другом конце соединения. Атак пока не зафиксировано, и это как раз повод обновиться сейчас, а не тянуть.
OpenSSL лежит в основе огромного пласта инфраструктуры, поэтому дыра в нём — это почти никогда не один сервер. Загвоздка в этот раз в двух вещах: во-первых, речь про DTLS, который стоит в куда менее очевидных местах, чем обычный TLS, а во-вторых, обновления одного пакета в системе не хватит, чтобы закрыть все копии OpenSSL, которые у вас на самом деле работают.
Что делает уязвимость
Проблема в том, как OpenSSL повторно отправляет сообщение при установке DTLS-соединения. Если повторная отправка начинается в тот момент, когда большое сообщение ещё передано не полностью, OpenSSL берёт данные не с начала, а с той позиции в буфере, где остановился на большом сообщении. В результате уходит сообщение, в тело которого попали остатки чужих данных из памяти. Дальше два варианта:
- Утечка памяти. Эти остатки уходят на другой конец соединения в открытом виде. Что в этот момент лежало в памяти процесса, то и утекает по сети. По сути это тот же класс проблемы, что и знаменитый Heartbleed: содержимое памяти сервера видит посторонний.
- Падение процесса. Если чтение уходит за границы буфера и цепляет недоступный участок памяти, процесс падает. Это уже отказ в обслуживании, и именно поэтому CISA оценил влияние на доступность как высокое.
Оценка CISA тут показательна: по конфиденциальности влияние низкое, по доступности высокое. То есть более вероятный исход — это падение сервиса, а утечка памяти хоть и реальна, но ограничена тем, что случайно окажется в буфере в нужный момент. В любом случае посторонний без всяких учётных данных может дотянуться до DTLS-сервиса и вывести его из строя.
Почему DTLS важен, даже если кажется, что вы его не используете
Обычный TLS защищает HTTPS, и про его обновление помнят все. DTLS — это тот же TLS, но для другого типа сетевого трафика, и он прячется там, где его как TLS вообще не воспринимают:
- VPN. Ряд VPN-продуктов гоняет через DTLS основной поток данных, в том числе распространённые SSL-VPN-шлюзы. Такой шлюз смотрит в интернет и общается по DTLS с каждым подключённым клиентом.
- WebRTC. Звонки, видео и вообще всё на WebRTC согласуют ключи через DTLS. Есть медиасерверы или бэкенд под WebRTC, значит есть и DTLS.
- VoIP и связь в реальном времени. Защита голоса в SIP-телефонии (DTLS-SRTP) тоже держится на DTLS.
Вывод простой: сказать «мы DTLS не отдаём» легко — а на деле часто оказывается наоборот. Если у вас VPN-шлюз, голосовой или видеосервис или что угодно, где голос и видео идут в реальном времени, у вас есть открытые DTLS-точки, и дыра бьёт по обеим сторонам соединения.
Затронутые и исправленные версии
Обновляйтесь как минимум до исправленной сборки на своей ветке:
| Ветка | Исправлено в | Кому доступно |
|---|---|---|
| 4.0 | 4.0.3 | Всем |
| 3.6 | 3.6.5 | Всем |
| 3.5 (LTS) | 3.5.9 | Всем |
| 3.4 | 3.4.8 | Всем |
| 3.0 | 3.0.23 | Только платная поддержка |
| 1.1.1 | 1.1.1zj | Только платная поддержка |
| 1.0.2 | 1.0.2zs | Только платная поддержка |
Обратите внимание на три нижние строки. Фиксы для 3.0, 1.1.1 и 1.0.2 доступны только клиентам платной поддержки, потому что для всех остальных эти ветки уже сняты с поддержки. Если вы всё ещё сидите на 1.1.1 или старше, бесплатного патча не будет, и настоящее решение — это переезд на актуальную ветку. А это уже отдельная задача, а не обновление в одну команду.
Для популярных дистрибутивов Linux пропатченные пакеты такие: Ubuntu 26.04 LTS libssl3t64 3.5.5-1ubuntu3.6, Ubuntu 24.04 LTS libssl3t64 3.0.13-0ubuntu3.16, Ubuntu 22.04 LTS libssl3 3.0.2-0ubuntu1.30, Debian 13 openssl 3.5.7-1~deb13u3 (DSA-6531-1).
Подвох: обновить пакет в системе недостаточно
Вот на чём люди спотыкаются на каждом обновлении OpenSSL, и здесь это особенно важно, потому что DTLS часто зашит прямо внутрь приложений. Когда вы обновляете пакет OpenSSL в дистрибутиве, чинится всё, что подхватывает системную библиотеку на лету. Но это не трогает:
- Приложения со своей копией OpenSSL. Многие VPN-клиенты и серверы, медиасерверы и среды исполнения языков тащат OpenSSL в комплекте. Такая копия обновится, когда обновится само приложение, а не когда вы накатите системный патч.
- Программы, куда OpenSSL вшит намертво. Если библиотека вкомпилирована прямо в программу, обновление системного пакета ей ничего не даёт. Такую программу надо пересобрать или заменить целиком.
- Контейнеры. В каждом образе свой OpenSSL. Патч на хосте никак не влияет на то, что крутится внутри контейнеров, так что образы надо пересобрать из обновлённой основы.
- Железо и прошивки. VPN-коробка или встраиваемое устройство несёт свой OpenSSL, и тут вы ждёте обновления прошивки от производителя, а не ставите патч сами.
Так что задача шире, чем apt upgrade. Найдите все места, где работает OpenSSL, проверьте версию у каждого, а не только системную, и обновляйте по отдельности: пакет в системе, встроенные копии, образы контейнеров и прошивки от производителей. Именно эти забытые копии обычно всплывают на внешнем периметре — их и ищет наш пентест инфраструктуры, когда мы проверяем, что реально торчит наружу, а не что написано в списке систем на бумаге.
Что ещё было в этом обновлении
Тем же обновлением OpenSSL закрыл не только эту дыру. CVE-2026-84783 (средняя) роняет многопоточный TLS-клиент и сервер, но только на OpenSSL 4.0. CVE-2026-75806 (низкая) обрывает соединение на определённом наборе шифров в DTLS 1.2. Плюс ещё 11 мелких исправлений, включая код QUIC и утечки по времени в ECDSA и SM2. Ничего из этого не тянет на заголовок — но раз вы всё равно ставите обновление, они прилетают заодно. Ещё одна причина ставить полную исправленную сборку, а не выбирать заплатки по одной.
Вывод
CVE-2026-84782 нашёл Laurent Gaffie из Secorizon в августе, исправил Ryan Hooper из OpenSSL, публично раскрыли 29 сентября. Это чистая опасная дыра, где посторонний по DTLS либо вытягивает память сервиса, либо роняет его — и другого лечения, кроме патча, нет. Два момента, которые нельзя упустить. Первый: не считайте, что DTLS у вас нет, его используют и VPN, и WebRTC, и голосовая связь. Второй: не считайте, что обновление системного пакета закрывает всё, потому что встроенный и вшитый OpenSSL живёт своей жизнью. Обновитесь до исправленной сборки под свою ветку, пересоберите контейнеры и вшитые программы, а если вы всё ещё на 1.1.1 или старше, воспринимайте это как повод наконец уйти с ветки, которая больше не получает бесплатных заплаток.
Если ваши сервисы смотрят в интернет и вы хотите понять, где у вас торчат наружу OpenSSL и DTLS и все ли копии обновлены, это наша повседневная работа: пентест, тест внешнего периметра и аудит безопасности сети.