CVE-2026-65634: уязвимость отказа в обслуживании в декодере ASN.1 OBJECT IDENTIFIER Erlang/OTP
В Erlang/OTP обнаружена уязвимость CVE-2026-65634 (CVSS 8.2, HIGH), позволяющая неаутентифицированному удалённому атакующему вызвать отказ в обслуживании. Проблема затрагивает декодер ASN.1 OBJECT IDENTIFIER и проявляется уже на этапе TLS-рукопожатия при разборе сертификатов X.509. Уязвимы сервисы, которые обрабатывают сертификаты пиров, в том числе TLS-клиенты и серверы с mutual TLS.
Подробности
Проблема затрагивает декодер BER OID asn1rtt_ber:dec_subidentifiers/3 в файле lib/asn1/src/asn1rtt_ber.erl, а также эквивалентный PER-помощник asn1rtt_per_common:dec_subidentifiers/3 в lib/asn1/src/asn1rtt_per_common.erl. Оба накапливают base-128 субъидентификатор в целое число неограниченного размера, выполняя на каждый байт-продолжение операцию вида (Av bsl 7) + H. Каждый сдвиг и сложение над растущим аккумулятором линейны по числу уже накопленных бит, что даёт квадратичную суммарную работу в зависимости от размера одного субъидентификатора. Аналогичная проблема неограниченного разбора целых присутствует и в JER-помощнике asn1rtt_jer:json2oid/1 в lib/asn1/src/asn1rtt_jer.erl при декодировании OID из JSON, разделённого точками. По оценке исследователей, DER-кодированный OBJECT IDENTIFIER с одной очень большой дугой (примерно 262 КБ байт-продолжений) потребляет около 13 секунд процессорного времени на типичном оборудовании. Уязвимый декодер генерируется в каждый ASN.1-модуль, содержащий OBJECT IDENTIFIER, включая OTP-PUB-KEY, который задействуется при разборе сертификатов X.509 через public_key:pkix_decode_cert/2. Декодер срабатывает до проверки подписи и цепочки доверия, поэтому подвержены любые службы Erlang, разбирающие сертификаты пиров: TLS-клиенты по умолчанию (всегда разбирают сертификат сервера) и серверы с mutual TLS (разбирают клиентские сертификаты). Уязвимость затрагивает OTP начиная с версии OTP 17.0 до OTP 27.3.4.18, OTP 28.5.0.7 и OTP 29.1.1, что соответствует asn1 от 3.0 до 5.3.4.3, 5.4.3.1 и 5.5.2. Затронутость версий OTP ранее 17.0 (asn1 ранее 3.0) неизвестна. Уязвимости присвоен рейтинг CVSS 8.2 (HIGH).Что делать
Рекомендуется обновить Erlang/OTP до исправленных версий: OTP 27.3.4.18, OTP 28.5.0.7 или OTP 29.1.1 и новее, что соответствует asn1 5.3.4.3, 5.4.3.1 и 5.5.2. Если немедленное обновление невозможно, следует рассмотреть ограничение размера входящих сертификатов и TLS-сообщений на уровне обратного прокси или балансировщика, а также ограничение числа одновременных TLS-рукопожатий для снижения эффекта от потенциальной эксплуатации. Дополнительно стоит применять таймауты на этапе установления TLS-соединения и мониторить аномальную загрузку CPU при обработке сертификатов. Итог: CVE-2026-65634 — высококритичная уязвимость отказа в обслуживании в Erlang/OTP, эксплуатируемая удалённо без аутентификации. Учитывая, что уязвимый код выполняется до проверки подписи сертификата, обновление до исправленных версий OTP является приоритетной мерой для всех сервисов, работающих с TLS-сертификатами.Источник: CVE Project (cvelistV5)
