Vulnerabilidad crítica YAML de TensorFlow, biblioteca de aprendizaje automático de Python. La falla permite a los hackers tomar el control de su aplicación

Los responsables de TensorFlow, la biblioteca de aprendizaje automático Python, decidieron revocar la compatibilidad con YAML debido a una vulnerabilidad de ejecución de código arbitrario. YAML es un formato de uso general que se utiliza para almacenar datos y pasar objetos entre procesos y aplicaciones; muchas aplicaciones de Python usan YAML para serializar y deserializar objetos.

Según menciona una alerta publicada en Github, TensorFlow y Keras, una biblioteca contenedora para TensorFlow, utilizó una función insegura para deserializar modelos de aprendizaje automático codificados en YAML. Una prueba de concepto (PoC) muestra la vulnerabilidad que se explota para devolver el contenido de un archivo de sistema sensible:

Dado que la compatibilidad con el formato YAML requiere una cantidad significativa de trabajo, los desarrolladores decidieron eliminarlo de forma temporal.

Al respecto, el investigador de seguridad Arjun Shibu menciona: “Los errores de deserialización representan la más importante superficie de ataque para código escrito en lenguajes como Python o Java; en este caso, encontramos una llamada a la función peligrosa yaml.unsafe_load().”

Al parecer, esta función carga una entrada YAML directamente sin un adecuado proceso de desinfección, lo que permitiría a los actores de amenazas inyectar código malicioso en el sistema objetivo. Contrario a lo que se pensaría, la deserialización insegura es una práctica muy común: “Hay miles de proyectos o bibliotecas deserializando objetos de Python sin validación”, agrega el investigador.

El uso de serialización es muy común en aplicaciones de aprendizaje automático. La formación de modelos es un proceso lento y costoso. Por lo tanto, los desarrolladores a menudo usaban modelos previamente entrenados que se han almacenado en YAML u otros formatos compatibles con bibliotecas ML como TensorFlow: “Dado que las aplicaciones de ML generalmente aceptan la configuración del modelo de los usuarios, supongo que la disponibilidad de la vulnerabilidad es común, lo que hace que una gran proporción de productos esté en riesgo”, concluye Shibu.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).