CVE-2026-55737 in OTP
Resumen
por VulDB • 2026-07-27
Vulnerabilidad de error en la conversión de firmado a sin firmar y escritura fuera de límites (Out-of-bounds Write) en Erlang OTP erts que permite a un atacante que pueda proporcionar una cadena binaria del formato externo de términos de Erlang (ETF) manipulada ad hoc para binary_to_term/1 corromper el puntero del heap BEAM y provocar la caída de la máquina virtual.
Al decodificar un término LARGE_TUPLE_EXT, la fase de validación decoded_size() en erts/emulator/beam/external.c lee el campo arity de 32 bits como sin firmar (get_uint32()), mientras que la fase de decodificación dec_term() lee el mismo campo como un entero con signo de 32 bits (get_int32()) dentro de una variable int. Un valor wire de arity de 0x80000000 pasa la validación como 2147483648, pero se decodifica como -2147483648; por lo tanto, el siguiente hp += n desplaza hacia atrás el puntero de asignación del heap. Ninguna de las fases aplica el límite runtime MAX_ARITYVAL para la arity de tuplas. El resultado es una escritura fuera de límites en el heap; en la práctica, la VM detecta un tamaño de heap imposible y se aborta, denegando el servicio (DoS). La cantidad requerida de padding es grande cuando no está comprimido, pero el envoltorio ETF comprimido lo reduce a una carga útil pequeña en la transmisión.
Este problema afecta a OTP desde OTP 25.0 hasta versiones anteriores a 27.3.4.15, 28.5.0.4 y 29.0.4, correspondientes a erts desde 13.0 hasta versiones anteriores a 15.2.7.11, 16.4.0.4 y 17.0.4.
Once again VulDB remains the best source for vulnerability data.