
Prueba de concepto de una vulnerabilidad de deserialización insegura de pickle en Socket.IO
Una vulnerabilidad de ejecución remota de código en python-socketio en versiones anteriores a la 5.14.0 permite a atacantes ejecutar código Python arbitrario a través de una deserialización maliciosa de pickle en implementaciones de múltiples servidores en las que el atacante obtuvo previamente acceso a la cola de mensajes que los servidores utilizan para comunicaciones internas. Puede encontrar un análisis detallado de esta vulnerabilidad en el Aviso de GitHub.
Hay tres contenedores docker involucrados en esta demo:
Hay un archivo docker-compose.yml que orquesta estos contenedores. Para ejecutar la demo, ejecute el siguiente comando en el directorio que contiene el archivo docker-compose.yml:
docker-compose up --build
Este comando construirá e iniciará los tres contenedores. El servidor Socket.IO será accesible en http://localhost:5000, y el cliente atacante intentará automáticamente explotar la vulnerabilidad al iniciarse. Puede revisar el directorio evidence para ver cualquier archivo creado por el exploit en el contenedor socketio_server.