Неправильная проверка указанного количества входных данных. Уязвимость в Erlang/OTP eldap позволяет злонамеренному или скомпрометированному LDAP-серверу снижать доступность, возвращая реферальный URL-адрес, компонент порта которого представляет собой очень длинный набор цифр.
eldap:parse_port/2 передает подстроку порта прямо в list_to_integer/1 без ограничения длины. Окружающий try...catch отклоняет только значение, которое не удалось проанализировать, поэтому синтаксически допустимый порт длиной примерно до 1,26 миллиона цифр успешно преобразуется и обходится вызывающему абоненту в сотни миллисекунд арифметических операций произвольной точности на одно обращение.
Задокументировано, что сама функция преобразования принимает целые числа любого размера, поэтому ответственность за ограничение ввода лежит на вызывающей стороне. Для достижения уязвимости приложение должно передать предоставленную сервером ссылку на eldap:parse_ldap_url/1, который eldap никогда не вызывает сам: строки ссылки возвращаются вызывающему объекту без анализа. Эта проблема затрагивает OTP от OTP 17.0 до OTP 27.3.4.17, от OTP 28.0 до OTP 28.5.0.6 и от OTP 29.0 до OTP 29.0.6, что соответствует eldap от 1.0.3 до 1.2.14.2, от 1.2.15 до 1.2.16.1 и от 1.3. до 1.3.1.
Показать оригинальное описание (EN)
Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP eldap allows a malicious or compromised LDAP server to degrade availability by returning a referral URL whose port component is a very long run of digits. eldap:parse_port/2 passes the port substring straight to list_to_integer/1 with no length bound. The surrounding try ... catch only rejects a value that fails to parse, so a syntactically valid port of up to roughly 1.26 million digits converts successfully and costs the caller hundreds of milliseconds of arbitrary-precision arithmetic per referral. The conversion function itself is documented to accept integers of any size, so bounding the input is the caller's responsibility. Reaching the flaw requires the application to pass a server-supplied referral to eldap:parse_ldap_url/1, which eldap never calls itself: referral strings are returned to the caller unparsed. This issue affects OTP from OTP 17.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6, corresponding to eldap from 1.0.3 before 1.2.14.2, from 1.2.15 before 1.2.16.1, and from 1.3 before 1.3.1.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Erlang Erlang\/Otp
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
|
17.0
|
27.3.4.17
|
|
Erlang Erlang\/Otp
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
|
28.0
|
28.5.0.6
|
|
Erlang Erlang\/Otp
cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
|
29.0
|
29.0.6
|