Agents IA · Actualité

Pydantic AI 2.66 : dix avis de sécurité corrigés d'un coup, mise à jour conseillée

La version 2.66.0 de Pydantic AI publie dix avis de sécurité, dont deux de gravité élevée. La plupart ne concernent que les applications exposées à des contenus non maîtrisés : pages web, schémas d'outils envoyés par un client, résultats d'outils tiers. Voici comment savoir si vous êtes concerné.

Par Kayzen AI · · 3 min de lecture

Photo d'illustration : Yubikey USB 2FA U2F Security Token (46900270791)
Image : Yubikey USB 2FA U2F Security Token (46900270791) — Tony Webster from Minneapolis, Minnesota, United States, CC BY 2.0, via Wikimedia Commons

Pydantic AI est un cadre Python pour construire des agents, édité par l'équipe à l'origine de la bibliothèque de validation Pydantic. Sa version 2.66.0, publiée le 4 novembre 2026, ajoute quelques fonctions, mais l'essentiel est ailleurs : dix avis de sécurité, rendus publics en même temps. Les utilisateurs restés sur la branche 1 reçoivent sept de ces correctifs dans la version 1.107.10, sortie le même jour.

Deux failles de gravité élevée

  • Récupération de pages web. L'outil local de récupération web remettait en forme les réponses JSON avant d'appliquer la limite de taille. Un document très imbriqué, pourtant sous la limite de téléchargement, pouvait gonfler de plusieurs centaines de fois et saturer la mémoire. Sont concernées les applications où un tiers peut influencer les adresses consultées. La récupération web native des fournisseurs de modèles n'est pas touchée.
  • Masquage des secrets. Dans le paquet Harness, le motif qui repère les clés privées pouvait bloquer le programme pendant plusieurs minutes sur quelques centaines de caractères construits exprès. Le correctif est dans pydantic-ai-harness 0.66.0.

Les failles de gravité moyenne

  • Identifiants dans les traces. Avec l'instrumentation OpenTelemetry activée sur les modèles d'embedding, les réglages extra_headers et extra_body étaient enregistrés dans les traces. Une clé passée par ce biais devenait lisible par toute personne ayant accès aux traces exportées.
  • Fichiers reconstruits depuis l'historique. Quand l'historique était sauvegardé puis rechargé, un résultat d'outil imitant la forme d'un fichier était reconstruit comme tel. Un tiers contrôlant les données d'un outil pouvait ainsi faire lire des adresses du réseau local ou des objets s3:// avec les droits de l'application.
  • Schémas d'outils piégés. Deux avis portent sur des schémas dont les références croisées explosent en temps de calcul et en mémoire. Le cas le plus direct : l'adaptateur AG-UI, qui accepte des schémas envoyés par le client.
  • Chargement des messages. Les adaptateurs Vercel AI et AG-UI mettaient un temps croissant avec le carré du nombre de fragments de messages envoyés par le client.
  • Tencent Cloud. La liste des adresses de métadonnées bloquées oubliait celle de ce fournisseur. Seuls les déploiements chez Tencent Cloud qui autorisent les adresses locales sont exposés.
  • Identifiant MCP. Entre la v2.57.0 et la v2.60.0, un serveur MCP déclaré sans identifiant explicite en recevait un tiré de son adresse. Si le chemin contenait un secret, celui-ci pouvait atteindre l'interface de discussion. Le défaut est corrigé depuis la v2.60.0.

Un dernier avis, de gravité faible, concerne les listes de domaines autorisés : la résolution DNS avait lieu avant le contrôle de la liste.

Ce que les notes ne disent pas

Les avis sont référencés par des identifiants GitHub (GHSA), sans numéro CVE. Les notes ne mentionnent aucune exploitation observée. La plupart des failles sont des dénis de service : elles ralentissent ou bloquent l'application, sans donner accès aux données. Quatre font exception et peuvent exposer des secrets ou des données : les métadonnées Tencent Cloud, les traces d'embedding, la reconstruction de fichiers et l'identifiant MCP.

Notre lecture

Si votre agent ne traite que vos propres données, derrière votre propre interface, le risque est limité. Il augmente dès que l'agent lit le web, reçoit des schémas d'un navigateur ou relit des résultats d'outils tiers. Dans tous les cas, la mise à jour est peu coûteuse. Deux actions demandent en revanche un geste manuel, recommandé par l'éditeur :

  • si vous passiez une clé via extra_headers ou extra_body avec les traces activées, restreignez l'accès aux anciennes traces et renouvelez la clé ;
  • si l'adresse d'un serveur MCP contenait un secret dans son chemin, renouvelez-le.

Le nombre d'avis ne doit pas inquiéter outre mesure : un éditeur qui publie et documente ses failles est plutôt un bon signe. Il rappelle surtout qu'un agent relié au web est une surface d'attaque comme une autre.

Sources

  1. Pydantic — pydantic-ai v2.66.0 (notes de version GitHub) — source primaire
  2. Pydantic — liste des versions de pydantic-ai