Un avertissement critique pour le package pip pantheon-agents a été publié dans la GitHub Advisory Database le 26 août à 14 h 36 UTC. L’incident sous-jacent s’est produit en juin 2026. L’écart entre ces deux dates est de 72 jours, et c’est le moindre des problèmes de ce dossier.

Ce que les attaquants ont fait

Le compte PyPI du mainteneur a été compromis dans une attaque de la chaîne d’approvisionnement et les versions 0.6.1 et 0.6.2 ont été mises en ligne directement sur PyPI. Ces versions contiennent un fichier .pth — un mécanisme que Python exécute automatiquement au démarrage de l’interpréteur, avant même l’exécution de votre code — qui télécharge un runtime JavaScript et collecte des variables d’environnement, des clés API, des clés SSH et des identifiants cloud. Il n’a jamais été nécessaire d’importer le package. L’installer dans un environnement qui lançait ensuite Python suffisait.

La partie saine

L’avertissement est précis sur le périmètre : « Seuls les artefacts PyPI sont concernés. Le dépôt source GitHub, ses balises git et tous les autres canaux de distribution sont sains. » Toute personne qui a intégré le code depuis la source ou verrouillé une balise git n’a jamais été exposée. Il s’agit d’une compromission de la distribution, pas du code, ce qui est précisément le type de cas que les lockfiles avec empreintes de hachage sont censés détecter, contrairement aux plages de versions trop larges.

Ce que le cadrage habituel ignore

Un avertissement avec un champ version corrigée indiquant 0.6.4 dit la même chose à tous les scanners et à tous les robots de dépendances : passez à 0.6.4 et tout est réglé. Or le corps du même avertissement indique que la distribution sur PyPI est suspendue et « reprendra après récupération du compte et migration vers PyPI Trusted Publishing (OIDC) », et invite les utilisateurs à installer depuis le code source GitHub à la place. La remédiation lisible par machine pointe donc vers une version que le registre ne distribue pas, tandis que la remédiation lisible par l’humain dit d’arrêter d’utiliser le registre. Les outils automatisés lisent le premier champ, pas le second. Une équipe qui laisse ses robots agir sur cet avertissement ouvrira une pull request impossible à résoudre.

Et il n’y a pas de CVE

L’enregistrement ne comporte aucun identifiant CVE. Les organisations dont la gestion des vulnérabilités repose sur les CVE — ce qui est le cas de la plupart des organisations dotées d’un processus formel — ne verront rien du tout. Une compromission critique d’un framework d’agents IA qui vole des identifiants n’est donc visible que pour les outils qui ingèrent directement les avertissements GitHub, 72 jours après les faits, avec un champ de remédiation pointant vers un endroit d’où le package ne peut pas être récupéré.

La fenêtre d’exposition est ce qu’il faut auditer

Les artefacts malveillants ont été retirés de PyPI, donc la vraie question n’est pas de savoir si vous pouvez encore les installer, mais si vous l’avez fait entre juin et leur suppression. Tout runner CI ou toute machine de développement ayant résolu pantheon-agents 0.6.1 ou 0.6.2 pendant cette période doit être considéré comme ayant vu ses variables d’environnement et ses identifiants cloud lus. La remédiation n’est pas une mise à niveau, mais une rotation des secrets.