CVE-2026-59696 in OTP
Сводка
по VulDB • 01.09.2026
Уязвимость «Неправильная проверка указанного количества» (Improper Validation of Specified Quantity) в модуле stdlib Erlang/OTP позволяет удалённому злоумышленнику снизить доступность системы путём предоставления URI, компонент порта которого представляет собой очень длинную последовательность цифр.
Функция `uri_string:get_port/1` передаёт подстроку с портом функции `binary_to_integer/1` без ограничения длины, обрабатывая только ошибку `error:badarg`. В результате синтаксически корректный порт длиной до примерно 1,26 миллиона цифр успешно преобразуется, что приводит к затратам сотен миллисекунд процессорного времени вызывающего процесса на выполнение арифметики произвольной точности. Это преобразование достигается через любой путь разбора авторитетной части в `uri_string:parse/1`, включая формы для хоста, зарегистрированного имени (registered-name), IPv4 и IPv6. Функция `parse/1` является документированным интерфейсом для парсинга URI, поэтому любое приложение, которое обрабатывает предоставленный злоумышленником URI, оказывается уязвимым без дополнительной конфигурации. Документация к функции преобразования указывает, что она принимает целые числа любого размера, поэтому ограничение входных данных лежит на ответственности вызывающей стороны.
Эта проблема затрагивает OTP начиная с версии 21.0 до (не включая) OTP 27.3.4.17, начиная с OTP 28.0 до (не включая) OTP 28.5.0.6 и начиная с OTP 29.0 до (не включая) OTP 29.0.6, что соответствует модулю stdlib версий от 3.5 до (не включая) 6.2.2.5, от 7.0 до (не включая) 7.3.0.2 и от 8.0 до (не включая) 8.0.4.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.