CVE-2025-62373 : RCE préauth dans Pipecat via pickle.loads() exposé en WebSocket (CVSS 9.8). Toutes versions 0.0.41 à 0.0.93 vulnérables, patcher en 0.0.94.
TL;DR — En résumé
CVE-2025-62373 : désérialisation pickle non sanitisée dans Pipecat LivekitFrameSerializer expose tous les agents vocaux IA à une RCE préauth CVSS 9.8.
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
Points clés à retenir
- Les faits
- Impact et exposition
- Recommandations immédiates
Pipecat est un framework Python open source maintenu par Daily.co, largement adopté pour bâtir des agents conversationnels vocaux et multimodaux en temps réel : voicebots, copilots IA, plateformes de support client automatisé. Publiée fin avril 2026, l'advisory CVE-2025-62373 décrit une vulnérabilité d'exécution de code à distance critique affectant le sérialiseur LivekitFrameSerializer, une classe optionnelle et peu documentée dédiée à l'intégration avec LiveKit. La faille repose sur un usage non sécurisé du module pickle : la désérialisation de données contrôlées par un attaquant permet l'exécution arbitraire de code sur le serveur hébergeant l'agent vocal. Concrètement, tout flux entrant malveillant transitant par ce sérialiseur peut compromettre l'intégralité de l'infrastructure conversationnelle. Cet article détaille le mécanisme technique de l'exploitation, les versions concernées, les indicateurs de compromission à surveiller et les mesures correctives à déployer sans délai.
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 (2)
- 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é.
Détails techniques du vecteur d'attaque
La faille exploite le mécanisme natif de désérialisation de Python. Le module pickle reconstruit des objets à partir d'un flux d'octets contenant des opcodes exécutables, dont REDUCE, qui permet d'invoquer n'importe quelle fonction Python — y compris os.system ou subprocess.Popen — via la méthode magique __reduce__. En appelant pickle.loads() sur des données brutes reçues d'un client WebSocket sans liste blanche de classes autorisées, LivekitFrameSerializer.deserialize() permet à un attaquant distant de forger une charge qui exécute une commande arbitraire dès sa désérialisation, sans qu'aucune donnée applicative ne soit réellement traitée par la logique métier.
Le détail du score CVSS 3.1 (9.8) illustre la sévérité : AV:N (exploitable depuis le réseau, aucun accès local requis), AC:L (pas de condition particulière, l'exploit est fiable et reproductible), PR:N et UI:N (ni authentification ni interaction utilisateur), et un impact C:H/I:H/A:H car le code s'exécute avec les pleins privilèges du processus Pipecat, généralement lancé sans sandboxing ni conteneurisation renforcée dans les déploiements observés.
Un précédent classique dans l'écosystème IA/ML
Les vulnérabilités de désérialisation pickle constituent une classe de risque récurrente dans l'écosystème Python data science et IA : des CVE similaires ont déjà touché torch.load() de PyTorch, les artefacts de modèles MLflow, ou encore joblib. La documentation officielle de Python avertit depuis des années que « ne désérialisez jamais des données pickle provenant d'une source non fiable » — un principe régulièrement ignoré dans les frameworks IA où la rapidité de prototypage prime sur la validation d'entrée. Le cas Pipecat est aggravé par le fait que la classe vulnérable traitait des flux réseau publics (WebSocket), et non de simples fichiers de modèles locaux, ce qui la rend directement exploitable sans ingénierie sociale.
Recommandations immédiates
- Mettre à jour
pipecat-aivers la version 0.0.94 ou supérieure sans délai sur tous les environnements de production. - Auditer le code source pour toute référence à
LivekitFrameSerializeret migrer versLiveKitTransport, qui repose sur Protocol Buffers et élimine toute désérialisation pickle côté réseau. - En attendant la mise à jour, isoler les endpoints WebSocket exposés derrière un WAF filtrant les payloads binaires suspects et restreindre l'accès réseau par liste blanche d'IP.
- Faire tourner les clés API (OpenAI, Anthropic, Deepgram, ElevenLabs, Twilio) potentiellement exposées sur tout serveur ayant fait tourner une version vulnérable.
Comment savoir si je suis vulnérable ?
Vérifiez la version installée avec pip show pipecat-ai : toute version comprise entre 0.0.41 et 0.0.93 incluse est concernée. Un grep sur le code applicatif via grep -r "LivekitFrameSerializer" . permet de confirmer une utilisation effective de la classe vulnérable, y compris dans des dépendances internes ou des forks maintenus séparément.
Votre infrastructure est-elle exposée ?
Un test rapide consiste à cartographier les endpoints WebSocket exposés publiquement (via un scan de ports ou un inventaire d'infrastructure) et à vérifier lesquels servent des agents Pipecat en frontal, notamment derrière des load balancers cloud où l'exposition directe est parfois masquée par une architecture en microservices.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Articles connexes :
Sources et références
À propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-83548 & CVE-2026-83549 : SonicWall SMA1000 KEV CISA
CVE-2026-83548 (SSRF pré-authentification, CVSS 10.0) et CVE-2026-83549 (injection de commandes OS) dans SonicWall SMA1000 sont activement exploitées et enchaînées pour obtenir une RCE non authentifiée. Ajoutées au catalogue CISA KEV le 2 septembre 2026 — hotfix disponible depuis le 1er septembre 2026.
CVE-2026-78509 & CVE-2026-78510 : Outlook Word RCE CVSS 9.8
CVE-2026-78509 et CVE-2026-78510 permettent une exécution de code à distance CVSS 9.8 dans Outlook et Word simplement en visualisant un email ou un document dans le volet de lecture, sans aucun clic utilisateur. Correctif disponible dans le Patch Tuesday de septembre 2026.
CVE-2026-81963 & CVE-2026-85880 : zero-days Windows KEV CISA
CVE-2026-81963 et CVE-2026-85880, deux zero-days Windows exploités avant la publication du patch, ont été ajoutés au catalogue CISA KEV avec délai de remédiation au 22 septembre 2026. Mise à jour immédiate requise.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire