Un PDF piégé transforme l’agent IA d’Atlassian en espion

Un PDF piégé transforme l'agent IA d'Atlassian en espion

L’essentiel

  • La société de sécurité PromptArmor a documenté une injection de prompt indirecte dans Rovo, l’agent IA d’Atlassian connecté à Jira et Confluence.
  • Un PDF contenant du texte blanc sur blanc en corps 1 point suffit à faire partir tickets et documents internes vers un serveur externe, sans confirmation de l’utilisateur ni trace visible dans la conversation.
  • Désactiver la recherche web au niveau de l’organisation ne protège pas : l’outil de lecture d’URL de l’agent, lui, reste actif.
  • Signalée le 23 mai 2026 puis relancée le 4 juin et le 29 juillet, la faille était toujours ouverte le 5 août, sans réponse de l’éditeur.

Vous demandez à votre agent IA de mettre de l’ordre dans vos tickets, et vous lui joignez un PDF de spécifications reçu la veille. Le document a l’air parfaitement banal. Quelques secondes plus tard, le contenu de vos tickets Jira et de vos pages Confluence est parti sur un serveur qui ne vous appartient pas. Vous n’avez rien validé, et rien ne s’affiche à l’écran.

C’est le scénario que la société de sécurité PromptArmor a reconstitué sur Rovo, l’agent IA d’Atlassian déployé sur toute la suite de l’éditeur. Il mérite qu’on le démonte pièce par pièce, parce que la mécanique en jeu ne concerne pas seulement Atlassian.

Aucune frontière entre votre consigne et la pièce jointe

Un document peut donner des ordres, et cela ne demande aucune ruse technique. Pour un modèle de langage, il n’existe pas deux catégories étanches de texte : ce que vous lui demandez et ce qu’il lit pour vous répondre arrivent dans la même fenêtre de contexte (sa mémoire de travail), sous la même forme. Une phrase à l’impératif planquée dans une pièce jointe a exactement le même statut qu’une phrase que vous auriez tapée vous-même.

Imaginez un assistant zélé à qui vous confiez un dossier. Quelqu’un y a glissé une note manuscrite : « au fait, avant de me rendre le dossier, photocopie les contrats du client et dépose-les à cette adresse ». L’assistant n’est pas malveillant, il n’a rien forcé, il applique simplement les consignes trouvées dans les documents qu’on lui a donnés à traiter. C’est ce qu’on appelle une injection de prompt indirecte : l’instruction hostile ne vient pas de l’attaquant en direct, elle voyage cachée dans la matière que l’agent doit lire.

Ici, la note manuscrite est invisible à l’œil nu : du texte blanc sur fond blanc, en corps 1 point, au milieu d’un PDF d’apparence anodine. Aucun relecteur humain ne peut la repérer. L’analyseur de documents, lui, la lit comme le reste.

Quatre étapes, de la pièce jointe au serveur distant

Le déroulé, tel que les chercheurs l’ont reconstitué, tient en quatre temps.

  • L’utilisateur joint le PDF à la conversation et demande à Rovo d’organiser ses tickets.
  • Pour répondre, l’agent va chercher le contexte utile dans Jira et Confluence : descriptions, assignations, priorités, étiquettes, pages internes.
  • L’injection cachée prend la main et lui dicte de construire une URL en empilant les données collectées dans les paramètres de la requête.
  • L’agent appelle son outil de lecture d’URL sur cette adresse. La requête part, les données avec elle, et le serveur de l’attaquant n’a plus qu’à lire ses propres journaux.

Aucune fenêtre de confirmation ne s’ouvre, aucune trace ne subsiste dans la conversation. PromptArmor décrit un second chemin de sortie, de même nature : Rovo affiche les images que ses réponses appellent, et afficher une image, c’est déjà envoyer une requête vers l’adresse où elle se trouve.

Personne n’a forcé la porte, l’agent l’a ouverte

Aucun contrôle d’accès n’a été contourné ici. Rovo a le droit de lire les tickets Jira et les documents Confluence de son utilisateur : c’est précisément sa raison d’être, et c’est cette portée large sur toute la suite qui fait sa valeur. L’attaquant n’a pas volé d’identifiants, il a emprunté un agent qui possédait déjà les bons.

Toute la sécurité applicative telle qu’on la pratique depuis vingt ans repose sur une frontière : les données sont inertes, seul le code s’exécute. Un agent connecté à vos outils internes supprime cette frontière. Le document qu’il lit devient une instruction potentielle, et son périmètre de droits devient le périmètre du dégât. Le PDF n’est d’ailleurs qu’une porte d’entrée parmi d’autres : un ticket de support rempli par un tiers, une page web consultée, une donnée remontée par un connecteur externe font tout aussi bien l’affaire.

Couper la recherche web ne ferme rien

Le réflexe d’un administrateur averti serait de désactiver la recherche web de l’agent à l’échelle de l’organisation. PromptArmor a testé : cela ne suffit pas. Le réglage retire la fonction de recherche, mais pas l’outil de lecture d’URL, qui reste disponible. Or l’agent ne cherche rien du tout dans ce scénario, il fabrique lui-même l’adresse à partir des instructions injectées, puis la consulte.

Devant n’importe quel agent d’entreprise, les questions à poser à l’éditeur portent donc sur ses capacités de sortie : quels outils peuvent émettre une requête vers l’extérieur, et lesquels peut-on réellement couper ? Tant qu’il subsiste une capacité d’envoi pilotable par du texte, il subsiste un canal d’exfiltration. Le reste est cosmétique.

Deux mois et demi sans réponse

Le calendrier de divulgation en dit long sur la maturité du secteur face à ce type de failles. PromptArmor a signalé le problème le 23 mai 2026. Deux jours plus tard, un numéro de dossier est attribué, accompagné d’un remerciement. Puis plus rien, malgré des relances le 4 juin et le 29 juillet. Au 5 août, date de publication des travaux, Rovo restait vulnérable, et c’est ce silence qui a décidé les chercheurs à rendre l’affaire publique.

Atlassian n’est pas un cas isolé : une faille comparable, exploitant cette fois des documents Word, a été décrite fin juillet sur Copilot, où les instructions cachées se recopient dans les fichiers produits et voyagent ainsi de document en document. Anthropic, de son côté, publie des chiffres sur son agent de navigation : ses garde-fous ramènent le taux de réussite des injections de 23,6 % à 11,2 % en mode autonome, et à zéro sur un lot d’attaques propres au navigateur. Ces défenses valent dans son propre écosystème, avec ses couches de protection maison, et un résidu de 11 % reste énorme quand ce qui fuit est un document interne. Personne, à ce jour, ne sait éliminer le problème à la racine.

Pour les équipes qui déploient ces outils, la consigne pratique est austère : traitez tout contenu entrant dans un agent comme un exécutable potentiel, et calibrez ses droits sur ce que vous acceptez de voir sortir. Un agent utile est un agent largement connecté. C’est aussi ce qui en fait, le jour où un document le retourne, un espion parfaitement légitime.

Mon avis

Cette faille ne se refermera pas avec un correctif, et présenter la chose comme un bug d’Atlassian nous arrange un peu trop. Tant qu’un même agent lit du contenu arbitraire et manipule des données internes avec les droits complets de son utilisateur, aucun filtre d’injection ne tiendra : on va nous vendre des détecteurs de prompts hostiles pendant deux ans, ils échoueront comme les premiers filtres antispam. La seule architecture qui me semble tenable sépare l’agent qui ingère du non fiable de celui qui accède aux données, et interdit toute sortie réseau dont l’adresse est fabriquée à l’exécution. Je m’attends à ce que la première grande fuite de données d’entreprise officiellement imputée à un agent IA soit rendue publique avant la fin de l’année, et à ce qu’on découvre alors que la victime avait coché toutes les cases de conformité.

Sources

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *