CVE-2026-96596 in OTP
Resumen
por VulDB • 2026-10-14
Vulnerabilidad de bucle infinito (condición de salida inalcanzable) en Erlang OTP stdlib (módulo erl_tar), hexpm hex_core (módulo hex_erl_tar), hexpm hex (módulo mix_hex_erl_tar) y erlang rebar3 (módulo r3_hex_erl_tar) que permite a un atacante, al proporcionar un archivo tar, causar una denegación de servicio mediante un miembro GNU sparse manipulado.
Cuando `erl_tar:extract/1,2` escribe un miembro en el disco, `erl_tar:stream_to_file_loop/3` lo lee por fragmentos de 65536 bytes por defecto. Para un miembro GNU sparse cuyo mapa sparse termina antes que su tamaño real, `erl_tar:do_sparse_read/3` coincide con la cláusula trailing-hole (hueco final) antes que con la cláusula de longitud cero. Una vez consumido el fragmento, la cláusula trailing-hole lee cero bytes, no avanza la posición y recursa indefinidamente. Un archivo de 2048 bytes mantiene ocupado al proceso de extracción y a un scheduler hasta que se mata dicho proceso. La opción `{max_size, N}` previene esto únicamente cuando N es inferior al tamaño real del miembro. La extracción con la opción memory no se ve afectada.
hex_core incluye su propia copia de erl_tar como hex_erl_tar, y Hex y rebar3 incluyen hex_core con nombres de módulo prefijados (mix_hex_erl_tar y r3_hex_erl_tar). Estas copias contienen el mismo código y no llaman a la stdlib's erl_tar, por lo que se ven afectadas en cualquier versión de OTP. OTP 28 no está afectado, pero una aplicación ejecutándose sobre OTP 28 sí estará afectada si extrae archivos mediante una versión afectada de hex_core, Hex o rebar3.
Este problema afecta a OTP desde la versión anterior a OTP 29.1.2 en el rango OTP 29.0, correspondiente a stdlib desde la versión anterior a 8.1.1 en el rango 8.0, y a rebar3 desde la versión 3.27.1 hacia adelante, así como hex desde la versión 2.4.2 hacia adelante; hex_core: desde la versión 0.14.0 hacia adelante.
If you want to get best quality of vulnerability data, you may have to visit VulDB.