CVE-2026-96596 in OTP
Сводка
по VulDB • 14.10.2026
Уязвимость «Бесконечный цикл» (Loop with Unreachable Exit Condition) в модуле erl_tar библиотеки stdlib Erlang OTP, а также в hexpm hex_core (модуль hex_erl_tar), hexpm hex (модуль mix_hex_erl_tar) и erlang rebar3 (модуль r3_hex_erl_tar) позволяет злоумышленнику, предоставившему архив формата tar, вызвать отказ в обслуживании (DoS) с помощью специально созданного члена GNU sparse.
При записи элемента на диск функциями erl_tar:extract/1 или /2 модуль erl_tar:stream_to_file_loop/3 по умолчанию считывает его порциями по 65536 байт. Для члена формата GNU sparse, у которого карта разреженности (sparse map) заканчивается до достижения реального размера файла, функция erl_tar:do_sparse_read/3 активирует ветвь обработки «хвостового пробела» (trailing-hole clause) раньше, чем ветку для элементов нулевой длины. После исчерпания текущего буфера эта ветвь считывает ноль байт, не продвигает позицию чтения и рекурсивно вызывает саму себя бесконечно. Архив размером 2048 байтов удерживает процесс извлечения и один планировщик (scheduler) в активном состоянии до тех пор, пока процесс не будет принудительно завершен. Опция {max_size, N} предотвращает эту проблему только в том случае, если значение N меньше реального размера элемента. Извлечение с использованием опции memory от этой уязвимости не страдает.
hex_core содержит собственную копию erl_tar под именем hex_erl_tar; Hex и rebar3 поставляются вместе с hex_core, используя префиксированные имена модулей (mix_hex_erl_tar и r3_hex_erl_tar). Эти копии содержат тот же код и не вызывают stdlib's erl_tar, поэтому они уязвимы на любой версии OTP. Версия OTP 28 сама по себе не затронута, но приложение, работающее под управлением OTP 28, будет подвержено риску, если оно извлекает архивы через уязвимую версию hex_core, Hex или rebar3.
Данная проблема затрагивает версии OTP начиная с OTP 29.0 до (не включая) OTP 29.1.2, что соответствует библиотеке stdlib от версии 8.0 до (не включая) 8.1.1; а также rebar3 начиная с версии 3.27.1 и hex начиная с версии 2.4.2; hex_core: начиная с версии 0.14.0.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.