Cabecera-v2-web.jpg

Vulnerabilidad grave en RubyGems permite la ejecución de código en remoto


ruby.png

RubyGems es un paquete de herramientas de software que sirve para instalar, actualizar y configurar bibliotecas y programas de Ruby. Los encargados de desarrollar este paquete han anunciado que el lunes parchearon una vulnerabilidad grave que afectaba a su producto.

La vulnerabilidad, que era una deserialización de objetos inseguros, permití­a a un hacker apoyarse en ella para llevar a cabo una ejecución de código en remoto. Para ello el atacante tendrí­a que ser capaz de inyectar una instancia de un objeto sobre un sistema vulnerable, abriendo así­ la puerta a la ejecución de código en remoto.

Los desarrolladores de RubyGems comentan que han auditado todas las Gems y no han encontrado ninguna que haya sido afectada por la explotación de la vulnerabilidad descubierta. Sin embargo, matizan su afirmación (ya que solo mencionan a lo que han podido abarcar) diciendo que "no podemos dar por seguro que ninguna Gem haya sido impactada", ya que el fallo fue introducido en 2012 y ha estado presente durante cinco años, no habiendo sido descubierto hasta el viernes de la semana pasada.

Según Max Justicz, descubridor de la vulnerabilidad, los ficheros YAML de las Gems contienen información relacionada con su nombre, autor, versión, el código fuente y los hash criptográficos. Al subirse una Gem a rubygems.org se usa llamadas inseguras para cargar ficheros YAML a la Gem. Por otro lado, ha especulado que los autores del sitio web conocí­an esto y habrí­an parcheando YAML y las biblioteca de análisis para permitir la deserialización de clases sobre una lista blanca.

Max Justicz explica junto a la prueba de concepto que ha aportado que "una de las ventajas de YAML es que es muy potente, y a veces se usa en contextos donde los formatos de intercambio menos expresivos (pero más seguros) como JSON son más apropiados. Quizá en el futuro YAML.load podrí­a ser modificado para tomar una lista blanca de clases como un parámetro opcional, haciendo que la deserializacion de objetos complejos sea un comportamiento optativo". El investigador también dijo que se "sorprendió al ver que el análisis de YAML no confiable resultaba peligroso. Siempre habí­a pensado que era un formato de intercambio benigno como JSON. De hecho, YAML permite la codificación de objetos arbitrarios, al igual que pickle (objeto de serialización) de Python."

Los mantenedores y desarrolladores de RubyGems han parcheado la vulnerabilidad añadiendo un código para permitir solo la deserialización de tipos seguros.


Fuente: blog.segu-info.com.ar


pie.png

CERT-PY | Centro de Respuestas a Incidentes Cibernéticos
Ministerio de Tencnologí­as de la Información y Comunicación (MITIC)

Avda. Gral. Santos c/ Concordia | Telefono: (595 21) 217-9000
República del Paraguay

80x15.png

Versión del Template 1.11