LMDeploy : RCE non authentifiée dans DistServe par désérialisation Pickle — CVE-2025-66455
Veille sécuritéBackend & données
P2Critique

L’avis LMDeploy relatif à CVE-2025-66455 a été mis à jour dans la fenêtre. Une désérialisation Python pickle non sûre dans le plan de contrôle DistServe/PD-disaggregation permet l’exécution de code à distance.

PythonLMDeployZeroMQOpenAI API
IdentifiantCVE-2025-66455
EPSS0,7%
Exploitationnon connue / non déterminée
Correctif0.16.0

Analyse technique

Le point d’entrée HTTP POST /distserve/p2p_connect accepte une adresse ZeroMQ contrôlée par le client. Le serveur établit ensuite une connexion PULL et appelle recv_pyobj(), qui repose sur la désérialisation Python Pickle. Du code peut être exécuté pendant la reconstruction de l’objet, avant la validation applicative. Le correctif remplace la sérialisation Pickle par JSON et valide les messages avec le schéma Pydantic DistServeCacheFreeRequest.

Impact, versions et correctif

VecteurRéseau, via le point d’entrée DistServe HTTP puis une adresse ZeroMQ fournie par l’attaquant.
PréconditionsLMDeploy >= 0.9.2 et < 0.16.0, backend PyTorch avec PD-disaggregation/DistServe activé ; l’attaquant doit atteindre l’API DistServe. L’exposition est aggravée lorsque l’authentification par clé API n’est pas configurée.
ImpactExécution de code avec les privilèges du processus de service LMDeploy ; exposition ou modification possible des poids de modèles, prompts, identifiants, stockage attaché, ressources GPU et services réseau accessibles.
Versions affectées>= 0.9.2, < 0.16.0
Version corrigée0.16.0
ContournementRestreindre /distserve/* et le plan de contrôle ZeroMQ aux réseaux de confiance, activer les clés API et empêcher les connexions ZeroMQ sortantes arbitraires depuis les nœuds de serving. Ces mesures ne corrigent pas la désérialisation Pickle.
Exploitation activenon connue / non déterminée
PoC publicnon documenté
CVSS9.8 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS0,70% · percentile 51,4%
Publication2026-09-18T17:03:56Z
Mise à jour2026-09-21T16:20:07Z

Détection / vérification

Rechercher les appels à /distserve/p2p_connect, les connexions ZeroMQ sortantes inhabituelles depuis les processus LMDeploy et les adresses zmq_address non approuvées. Vérifier que les déploiements DistServe exécutent au moins LMDeploy 0.16.0.

Action recommandée

Mettre à niveau LMDeploy vers 0.16.0 ou ultérieur sans délai. En attendant, retirer l’exposition publique du plan de contrôle DistServe et filtrer strictement les destinations ZeroMQ autorisées.

Sources

Priorisation DFS : P2 · confiance de recoupement standard · 1 source(s).