veilletech.fr
4 nov. Feed du jour
#04 OUTILS Article

Postman ajoute seul des plugins à Claude Code et Codex

Un outil qui touche à vos agents doit demander d'abord.

Un utilisateur documente, journaux à l'appui, que Postman 12.33.4 a installé automatiquement le 24 octobre un plugin dans Codex et dans Claude Code, avec un hook de démarrage, une connexion MCP distante et une ligne de commande Postman. L'installateur tente aussi d'approuver lui-même ce hook. Le rapport, non reproduit sur un Mac vierge, ne prétend pas prouver de fuite de données.

3 min de lectureintermédiairevidéo 1:15
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Ce que le rapport relève
  3. Pourquoi ça compte
  4. Comment vérifier chez vous
  5. À retenir

Ce qui se passe

Dans le ticket #14370 du dépôt postmanlabs/postman-app-support, un utilisateur raconte avoir rouvert Postman sur son Mac après un temps sans l'utiliser, puis vu ses agents de code changer de comportement : avertissements d'authentification MCP à répétition, et Codex qui passe par des « skills » Postman pour tout travail d'API. Son enquête, datée du 25 octobre 2026, porte sur Postman 12.33.4 (plugin Codex 1.1.0, plugin Claude Code 2.0.1).

Le titre repris sur Hacker News évoque une tentative de partager toutes les données d'API. Le ticket ne dit pas cela : son auteur écrit qu'il établit une intégration non voulue et des changements d'instructions, pas une exfiltration de données. Il précise aussi que la séquence n'a pas été reproduite sur un Mac vierge.

Ce que le rapport relève

  1. Le journal de Postman le consigne. Dans ~/Library/Application Support/Postman/logs/main.log, le 24 octobre 2026 à 09:34:14 UTC : PostmanAgentPluginService~install, source auto-existing-upgrade, résultats claude-code:installed et codex:installed.
  2. La config globale de Codex change. ~/.codex/config.toml reçoit une entrée [marketplaces.postman] (dépôt git https://github.com/postmanlabs/postman-plugin.git), [plugins."postman@postman"] avec enabled = true, et un enregistrement de confiance (trusted_hash) pour un hook.
  3. Le hook oriente l'agent. Il se lance au démarrage de session (startup|clear|compact) et injecte une consigne : avant toute tâche d'ingénierie d'API non triviale, charger la skill postman:api-engineer.
  4. L'installateur approuve lui-même ce hook. Le code source (installer/src/hosts/codex-hooks.ts) lit le hash du hook puis écrit son approbation dans la config. Le ticket reste prudent : il établit la tentative, pas qui a créé l'enregistrement de confiance précis.
  5. Une connexion MCP distante est activée sans authentification fonctionnelle : https://mcp.postman.com/mcp, avec dans les journaux de Codex Auth required.
  6. Claude Code et le système sont touchés aussi. ~/.claude/settings.json active postman@claude-plugins-official (version 2.0.1, portée utilisateur, 24 octobre 2026 à 09:34:02 UTC), et un exécutable Postman avec son dossier lib apparaît dans ~/.local/bin.

Pourquoi ça compte

Un hook de démarrage s'exécute à chaque session et ajoute des instructions à l'agent. L'approuver à la place de l'utilisateur déplace la décision de confiance hors de ses mains, dans un outil qui n'a rien à voir avec l'agent. Le rapporteur demande un consentement explicite pour chaque installation, la fin de l'auto-approbation des hooks, une procédure de retrait complète (configs, confiance des hooks, places de marché, caches, connexions MCP, CLI) et des skills limitées aux demandes explicites de Postman. Il a supprimé Postman et ses intégrations après avoir gardé ses preuves.

Comment vérifier chez vous

Si Postman est installé, regardez :

Terminal
grep -n "postman" ~/.codex/config.toml
grep -n "postman" ~/.claude/settings.json
ls ~/.local/bin | grep -i postman

Cherchez [marketplaces.postman], [plugins."postman@postman"], un hooks.state lié à Postman, l'entrée postman@claude-plugins-official et un exécutable Postman dans ~/.local/bin. Vous déciderez ensuite de garder ou de retirer ce qui s'y trouve. Ces commandes ne sont pas dans le ticket : c'est un moyen de relire les fichiers qu'il nomme.

Source : ticket GitHub #14370. Source en anglais.