Retour au blog
agents IAMCPinjection de promptPHP2ShellNode2Shell

PHP2Shell, Node2Shell, Pillow, LiteLLM : comment les failles d'octobre 2026 touchent vos agents IA

Publié le 2026-10-247 min de lectureCleanIssue

> En bref : Octobre 2026 a apporté des failles critiques dans PHP, Node.js, Pillow et la chaîne de publication de LiteLLM. Prises une par une, ce sont des failles d'infrastructure. Dans une architecture d'agents, elles deviennent atteignables par une simple injection de prompt : l'agent va chercher l'URL, ouvre le fichier ou appelle l'outil que l'attaquant a choisi. Voici les quatre chemins concrets, et ce qu'il faut vérifier.

1. L'outil « lire une page web » et Node2Shell

Un agent qui a un outil de navigation ou de fetch appelle des URL qu'il trouve dans ce qu'il lit : un ticket, un e-mail, un résultat de recherche. Si cet outil tourne sur Node.js et utilise fetch(), une réponse compressée en Brotli par un serveur hostile atteint directement le décodeur vulnérable (CVE-2026-111497).

Le scénario : une instruction cachée dans un document pousse l'agent à « vérifier » une URL. Le serveur répond avec un flux Brotli piégé. Le processus du serveur MCP ou du backend d'agent plante, fuit sa mémoire, ou exécute du code.

À vérifier : la version de Node.js de chaque serveur MCP et backend d'agent, et la liste des domaines que l'outil de fetch peut atteindre.

2. Les pièces jointes et Pillow

Un agent qui génère des aperçus, lit des images ou extrait du texte de documents utilise souvent Pillow. Avec CVE-2026-112900, c'est le nom du fichier qui porte l'attaque, pas son contenu. Si l'agent enregistre une pièce jointe avec le nom fourni par l'expéditeur, l'attaquant contrôle un argument passé à Ghostscript.

À vérifier : la version de Pillow (13.0.0 minimum), la présence de Ghostscript dans l'image, et le renommage systématique des fichiers reçus.

3. Les archives et tarfile

Les agents qui ingèrent des dépôts, des exports ou des jeux de documents décompressent des archives. Les failles corrigées dans les filtres d'extraction de tarfile et dans la décompression zipfile de CPython permettent d'écrire hors du dossier prévu ou de saturer la mémoire. Une archive déposée par un utilisateur suffit.

À vérifier : la version de CPython de l'environnement d'exécution de l'agent, et l'isolement du répertoire où il extrait les fichiers.

4. Les outils backend en PHP

L'agent appelle des outils : un CRM, une boutique, un intranet. Beaucoup tournent en PHP. Avec PHP2Shell, un attaquant qui compromet ce backend contrôle aussi les réponses que l'outil renvoie à l'agent. L'agent lit alors des données fabriquées et agit dessus. C'est une injection indirecte qui passe par l'infrastructure.

À vérifier : les versions de PHP derrière chaque outil appelé par l'agent, et la désactivation de session.upload_progress en attendant le patch.

5. La passerelle de modèles : LiteLLM

La compromission de LiteLLM 1.107.0 rappelle que la passerelle concentre les clés de tous les modèles. Un voleur installé dans l'environnement de l'agent récupère ces clés, et l'attaquant consomme les modèles au nom de l'entreprise.

À vérifier : versions épinglées, absence de latest en production, rotation des clés et alertes de facturation.

Ce que ces failles ont en commun

Aucune ne s'attaque au modèle. Toutes utilisent le fait qu'un agent agit sur des entrées qu'il ne contrôle pas : une URL, un nom de fichier, une archive, une réponse d'outil. Une injection de prompt donne à l'attaquant le choix de ces entrées. Le correctif d'infrastructure ferme la faille, mais la question de fond reste : qu'est-ce que votre agent peut aller chercher, ouvrir ou décompresser, et sur instruction de qui ?

La checklist de la semaine

  • Node.js 22.23.4, 24.22.1 ou 26.12.1 sur tous les serveurs MCP et backends d'agents.
  • Pillow 13.0.0 et CPython à jour dans les environnements qui traitent des fichiers.
  • PHP 8.2.35 minimum (ou la version corrigée de votre distribution) derrière chaque outil.
  • LiteLLM 1.106.2 ou version postérieure saine, épinglée, et clés tournées si 1.107.0 a été installée.
  • Une liste blanche des domaines que l'agent peut atteindre, appliquée au niveau réseau.
  • Vous éditez un logiciel ? CleanIssue réalise des audits de sécurité pour votre produit en conditions réelles, sans accès au code. Pour une première lecture de votre exposition, commencez par une revue externe de votre application.

    Besoin de savoir ce que votre agent IA peut faire ?

    Expliquez votre agent, ses tools et votre contexte client. Nous revenons vers vous avec le bon niveau de revue.

    Parler de votre audit