
Preuve de concept d'une vulnérabilité de désérialisation pickle non sécurisée dans Socket.IO
Une vulnérabilité d'exécution de code à distance dans python-socketio, dans les versions antérieures à 5.14.0, permet aux attaquants d'exécuter du code Python arbitraire via une désérialisation malveillante de pickle dans les déploiements multi-serveurs où l'attaquant a préalablement obtenu l'accès à la file de messages que les serveurs utilisent pour leurs communications internes. Vous pouvez trouver une analyse détaillée de cette vulnérabilité dans l'avis de sécurité GitHub.
Trois conteneurs Docker sont impliqués dans cette démonstration :
Un fichier docker-compose.yml orchestre ces conteneurs. Pour exécuter la démonstration, exécutez la commande suivante dans le répertoire contenant le fichier docker-compose.yml :
docker-compose up --build
Cette commande va construire et démarrer les trois conteneurs. Le serveur Socket.IO sera accessible à l'adresse http://localhost:5000, et le client attaquant tentera automatiquement d'exploiter la vulnérabilité au démarrage. Vous pouvez vérifier le répertoire pour tout fichier créé par l'exploit dans le conteneur socketio_server.
evidence