CVE-2025-61765
python-socketio vulnérable à l’exécution arbitraire de code Python (RCE) via la désérialisation de pickles malveillants dans certains déploiements multi-serveurs
- Publié
- 6 oct. 2025
- Mise à jour
- 22 oct. 2025
- Attribution de CNA
- GitHub_M
- Preuve observée
- 8 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:LFaible · 30 prochains jours
- Percentile
- 40,6 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
python-socketio est une implémentation Python du client et serveur temps réel Socket.IO. Une vulnérabilité d'exécution de code à distance dans les versions de python-socketio antérieures à 5.14.0 permet à des attaquants d'exécuter du code Python arbitraire par l'intermédiaire d'une désérialisation pickle malveillante dans les déploiements multi-serveurs sur lesquels l'attaquant a préalablement obtenu un accès à la file de messages que les serveurs utilisent pour leurs communications internes. Lorsque les serveurs Socket.IO sont configurés pour utiliser un backend de file de messages tel que Redis pour la communication inter-serveurs, les messages envoyés entre les serveurs sont encodés à l'aide du module Python `pickle`. Lorsqu'un serveur reçoit l'un de ces messages via la file de messages, il le considère comme fiable et le désérialise immédiatement. La vulnérabilité provient de la désérialisation des messages à l'aide de la fonction `pickle.loads()` de Python. Ayant préalablement obtenu un accès à la file de messages, l'attaquant peut envoyer à un serveur python-socketio une charge utile pickle conçue pour exécuter du code arbitraire pendant la désérialisation via la méthode `__reduce__` de Python. Cette vulnérabilité n'affecte que les déploiements dont la file de messages est compromise. L'attaque peut permettre à l'attaquant d'exécuter du code aléatoire dans le contexte, et avec les privilèges, d'un processus serveur Socket.IO. Les systèmes mono-serveur qui n'utilisent pas de file de messages, ainsi que les systèmes multi-serveurs dotés d'une file de messages sécurisée, ne sont pas vulnérables. En plus de veiller à ce que les pratiques de sécurité standard soient suivies lors du déploiement de la file de messages, les utilisateurs du paquet python-socketio peuvent mettre à niveau vers la version 5.14.0 ou une version plus récente, qui supprime le module `pickle` et utilise l'encodage JSON beaucoup plus sûr pour la messagerie inter-serveurs.
Sources
1Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.