馃 CVE-2024-11394 - Huggin Face 馃

Detecci贸n: 19/11/2024

鈿狅笍 Vulnerabilidad de ejecuci贸n remota de c贸digo.

鈿狅笍 Deserializaci贸n de datos no confiables

Servicios afectados:

馃敼 Empresa: Hugging Face

馃敼 Bibliotecas: Huggin Face Transformers & Huggin Face Trax

Esta vulnerabilidad permite a atacantes remotos ejecutar c贸digo arbitrario en las instalaciones afectadas de Hugging Face Transformers. Se requiere la interacci贸n del usuario para aprovechar esta vulnerabilidad, ya que el objetivo debe visitar una p谩gina maliciosa o abrir un archivo malicioso. La falla espec铆fica existe en el manejo de archivos de modelo. El problema se debe a la falta de una validaci贸n adecuada de los datos proporcionados por el usuario, lo que puede provocar la deserializaci贸n de datos que no son de confianza. Un atacante puede aprovechar esta vulnerabilidad para ejecutar c贸digo en el contexto del usuario actual.

Conceptos:

  • Hugging Face es una empresa que se especializa en la creaci贸n de herramientas de inteligencia artificial, particularmente en el 谩rea de procesamiento de lenguaje natural (NLP). Hugging Face ofrece una plataforma web (https://huggingface.co/) donde los usuarios pueden encontrar modelos preentrenados, compartir sus modelos y acceder a una comunidad activa de desarrolladores.
  • Transformers es una biblioteca de c贸digo abierto desarrollada por Hugging Face. Esta biblioteca proporciona implementaciones de modelos de aprendizaje profundo avanzados, como BERT, GPT-2, T5, entre otros, que son ampliamente utilizados en tareas de NLP (como traducci贸n de idiomas, an谩lisis de sentimientos, clasificaci贸n de texto, etc.).
  • Trax es otra biblioteca de aprendizaje profundo (deep learning) para tareas de procesamiento de texto, creada originalmente por el equipo de Google Brain. Trax est谩 orientada principalmente a la investigaci贸n y la implementaci贸n de modelos de NLP, especialmente en el contexto de traducci贸n autom谩tica y tareas relacionadas con secuencias de texto.
  • Deserializaci贸n se refiere al proceso de convertir un objeto o estructura de datos que ha sido guardado en un formato (como un archivo o un flujo de datos) de vuelta a su forma original, generalmente en la memoria de un sistema.
  • En este contexto, deserializar datos no confiables significa tomar datos que provienen de una fuente que no podemos confiar (por ejemplo, un archivo que no ha sido verificado o un mensaje de un atacante) y convertirlos a un objeto de Python o alg煤n otro tipo de objeto que la aplicaci贸n pueda usar. Si el proceso de deserializaci贸n no se maneja adecuadamente, podr铆a permitir que se ejecuten comandos maliciosos.

驴Qu茅 significa esta vulnerabilidad?

La vulnerabilidad de ejecuci贸n remota de c贸digo en la deserializaci贸n de datos no confiables implica que, si una aplicaci贸n basada en Hugging Face Transformers o Trax deserializa datos sin verificar su origen, un atacante podr铆a enviar datos maliciosos que, al ser deserializados, ejecuten c贸digo no autorizado en el sistema. Este tipo de vulnerabilidad puede llevar a un ataque remoto, en el cual el atacante podr铆a ejecutar c贸digo malicioso en el servidor de la aplicaci贸n o en cualquier otro entorno donde la deserializaci贸n insegura ocurra.

驴C贸mo se puede prevenir?

Para prevenir este tipo de vulnerabilidad, es importante:

  1. Validar y filtrar los datos que provienen de fuentes no confiables antes de deserializarlos.
  2. Usar deserializaci贸n segura: Asegurarse de que solo se deserialicen objetos esperados y seguros, utilizando m茅todos de deserializaci贸n que no ejecuten c贸digo arbitrario.
  3. Utilizar bibliotecas actualizadas y aplicar parches de seguridad cuando se identifiquen vulnerabilidades en las bibliotecas o frameworks utilizados.
  4. Evitar la deserializaci贸n de datos completamente no confiables siempre que sea posible.

Fuentes & Art铆culos Relacionados:

馃摎 National Vulnerability Databases

馃摎 Zero Day Initiative