En bref

  • CVE-2025-62373 : désérialisation pickle non sanitisée dans Pipecat (LivekitFrameSerializer) menant à une RCE non authentifiée.
  • Toutes versions de pipecat-ai entre 0.0.41 et 0.0.93 incluses sont vulnérables ; correction dans 0.0.94.
  • Mettre à jour vers 0.0.94 et migrer les intégrations LiveKit vers la classe LiveKitTransport officielle.

Les faits

Pipecat est un framework Python open source maintenu par Daily.co et largement utilisé pour bâtir des agents conversationnels vocaux et multimodaux temps réel (voicebots, copilots IA, support client). L'advisory CVE-2025-62373 publiée fin avril 2026 décrit une RCE critique dans le sérialiseur LivekitFrameSerializer, une classe optionnelle et non documentée destinée à l'intégration LiveKit. La méthode deserialize() invoque pickle.loads() directement sur les données reçues d'un client WebSocket, sans aucune validation.

Le score CVSS 3.1 est calculé à 9.8 selon la base GitLab Advisories : vecteur AV:N/AC:L/PR:N/UI:N, perte totale de confidentialité, intégrité et disponibilité. Une simple charge pickle malveillante envoyée via WebSocket suffit à déclencher l'exécution de code Python arbitraire avec les privilèges du processus Pipecat.

La classe vulnérable est dépréciée et a été supprimée du dépôt avec la version 0.0.94. Les développeurs ayant intégré LiveKit doivent migrer vers LiveKitTransport, qui s'appuie sur le SDK officiel LiveKit et utilise Protocol Buffers pour le transport.

Impact et exposition

Les déploiements concernés exposent généralement un endpoint WebSocket publiquement accessible pour la téléphonie ou le chat vocal en temps réel. La compromission donne accès à toutes les clés API stockées dans l'environnement (OpenAI, Anthropic, Deepgram, ElevenLabs, Twilio), ainsi qu'aux flux audio, transcripts et conversations utilisateurs traversant l'agent. Sur un serveur mutualisé, l'attaquant peut pivoter vers les autres workloads d'IA hébergés.

Les écosystèmes IA conversationnels et voicebots construits sur Pipecat sont particulièrement exposés : centres de contact intelligents, assistants médicaux et juridiques, démos de produits IA. La majorité des déploiements n'exigent pas d'authentification WebSocket pour faciliter l'intégration front, ce qui maximise la surface d'attaque.

Recommandations immédiates

  • Mettre à jour pipecat-ai en version 0.0.94 ou ultérieure dans tous les environnements (pip install -U pipecat-ai).
  • Auditer le code applicatif pour identifier toute utilisation de LivekitFrameSerializer et migrer vers LiveKitTransport selon le guide officiel.
  • Implémenter une couche d'authentification (JWT, API key) sur les endpoints WebSocket exposés publiquement, indépendamment du correctif.
  • Mettre en place un WAF ou un proxy applicatif filtrant les frames WebSocket non conformes au schéma attendu (Protocol Buffers ou JSON validé).
  • Faire tourner le processus Pipecat avec un utilisateur non privilégié, dans un conteneur isolé sans accès au réseau interne sensible.

⚠️ Urgence

L'exploitation de pickle.loads() est triviale : tout outil public type ysoserial.py génère une charge fonctionnelle en quelques secondes. Tant que la mise à jour n'est pas déployée, considérer toute instance Pipecat exposée comme compromise par défaut.

Comment savoir si je suis vulnérable ?

Vérifier la version installée avec « pip show pipecat-ai » ; toute version inférieure à 0.0.94 est concernée. Grepper le code source à la recherche de « LivekitFrameSerializer » dans les imports et instanciations. Si la classe n'est pas utilisée, le risque pratique est nul, mais la mise à jour reste recommandée pour bénéficier des autres correctifs de sécurité.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit