Nuevas versiones de Ruby y fin de soporte para Ruby 2.4
Ayer 31 de marzo se publicaron nuevas versiones con parches de seguridad para Ruby 2.4, 2.5, 2.6 y 2.7. Las versiones de Ruby 2.5.8, 2.6.6 y 2.7.1 cuentan con parches de seguridad para dos vulnerabilidades:
CVE-2020-16255: Unsafe Object Creation Vulnerability in JSON (Additional fix)
Es un arreglo adicional a una vulnerabilidad de creación no segura de objetos en JSON. La gema json incluida con Ruby puede ser forzada a crear objetos arbitrarios en un sistema. El mismo problema se habÃa corregido en CVE-2013-0269, pero estaba incompleto. Ese arreglo corregÃa JSON.parse(data_del_usuario)
, pero no otros tipos de procesamiento de JSON como JSON(data_del_usuario)
y JSON.parse(data_del_usuario, nil)
.
La falla se podÃa explotar para crear un ataque de denegación de servicio creando muchos objetos del tipo Symbol que no pueden ser limpiados por el garbage collector, pero este tipo de ataque ya no es válido porque los sÃmbolos ahora son limpiados por el GC. Sin embargo, crear objetos arbitrarios puede causar consecuencias en seguridad dependiendo del código de la aplicación.
CVE-2020-10933: Heap exposure vulnerability in the socket library
Se descubrió una vulnerabilidad que exponÃa el heap en la biblioteca socket. Cuando BasicSocket#recv_nonblock
y BasicSocket#read_nonblock
son invocados con tamaño y argumentos de buffer, inicialmente redimensionan el buffer al tamaño especificado. En casos donde la operación bloquearÃa, retornan sin copiar nada de información. Por lo tanto, el string de buffer incluye información arbitraria del heap. Esto puede exponer información posiblemente sensible del intérprete. El problema sólo se da en Linux y a partir de la versión 2.5.0, 2.4 no era vulnerable.
En cuanto a Ruby 2.4, es la última versión de esta serie, se terminó el perÃodo de mantenimiento de seguridad y ya no va a recibir más actualizaciones. Asà que si tienen código usando Ruby 2.4 todavÃa, ¡es momento de actualizar a una versión más nueva!