En los últimos años, el framework web Gradio para Python se ha posicionado como una herramienta esencial para presentar aplicaciones de aprendizaje automático. Sin embargo, recientemente se ha descubierto un conjunto de vulnerabilidades dentro de varios proyectos de código abierto que utilizan este popular framework. Hasta ahora, se han identificado 11 vulnerabilidades dentro de diferentes proyectos, incluidos en el informe Octoverse 2023 y 2024.
Gradio permite a los desarrolladores crear interfaces de usuario sencillas para modelos de aprendizaje automático mediante el uso de componentes como cuadros de texto o botones. Sin embargo, una investigación reciente ha destacado la importancia de estar atentos a la seguridad de estas aplicaciones. Utilizando la herramienta CodeQL para análisis estático, los investigadores pudieron modelar el funcionamiento de Gradio y detectar estos fallos de seguridad.
Entre las vulnerabilidades descubiertas se encuentran posibles inyecciones de comandos. Según el análisis realizado, uno de los puntos críticos es cómo las variables de entrada son gestionadas dentro de las aplicaciones construidas con Gradio. Estos hallazgos subrayan la necesidad de mitigar los riesgos asociados con las configuraciones y usos incorrectos de las funcionalidades de Gradio.
Los hallazgos fueron posibles gracias a una investigación detallada en la que se aplicaron técnicas de seguimiento de datos desde las fuentes (entradas del usuario) hasta los sumideros (funciones que ejecutan comandos sobre estos datos). El proceso involucró la creación de una base de datos de CodeQL para analizar posibles rutas de flujo de datos comprometidas.
Este caso de estudio de Gradio resaltó el uso de la Variante de Análisis en Múltiples Repositorios (MRVA) para escalar la investigación y detectar vulnerabilidades similares en miles de proyectos hospedados en GitHub. Con el uso de MRVA, se lograron identificar varias vulnerabilidades en proyectos de Gradio de uso común, demostrando la eficacia de esta técnica para la comunidad de desarrolladores.
Esta investigación no solo ha permitido el descubrimiento de vulnerabilidades en tiempo record, sino que también motiva a las organizaciones a implementar mejores prácticas de seguridad. CodeQL, con sus capacidades de análisis de flujo de datos, emergió como una herramienta invaluable para asegurar el entorno de Python frente a potenciales amenazas.
A medida que Gradio sigue evolucionando, es crítico que los desarrolladores se mantengan informados sobre las mejores prácticas y actualizaciones de seguridad para proteger sus aplicaciones de aprendizaje automático de posibles ataques.
vía: GitHub Security