Carte de diagramme technique abstrait intitulée « Une injection, deux couches », sous-titrée « Un agent autonome a atteint la base de données de production Lilli de McKinsey via un endpoint non authentifié. Les instructions régissant l'assistant se trouvaient dans la même base de données. » Une rangée de cinq blocs arrondis étiquetés « authentification requise » se trouve au-dessus d'une étiquette indiquant « Surface d'API publique · plus de 200 endpoints documentés » ; le troisième bloc est surligné en ambre et marqué « sans authentification · recherche ». Une ligne cyan pleine descend de ce bloc vers une deuxième rangée de cinq plaques de base de données étiquetées messages de chat, fichiers, comptes, espaces de travail et prompts système, intitulée « Base de données de production · lecture et écriture ». Une flèche ambre en pointillés descend de la plaque « prompts système » vers un panneau bleu marine foncé indiquant « Couche de prompts — les instructions régissant l'assistant étaient des lignes dans cette même base de données. Un seul UPDATE sur un seul appel HTTP les modifierait : aucun déploiement, aucune modification de code. » Quatre tuiles statistiques en bas indiquent 22 endpoints ne nécessitant aucune authentification, 2 heures pour accéder en lecture et en écriture, 95 prompts système dans la même base de données, et 9 mars, divulgation publique. Le logo OrcaRouter est intégré dans la bande blanche sous l'illustration.
AI Safety Incidents

Un agent IA a piraté Lilli de McKinsey en deux heures. Les prompts étaient modifiables.

Auteur

Rowan Sterling

Date de publication

Derniers modèles · 20Voir tous les modèles →
Benchmarks : Artificial Analysis · mis à jour quotidiennement
Retour à tous les articles

Le 28 février 2026, un agent autonome de sécurité offensive exploité par la start-up de cybersécurité CodeWall a découvert une injection SQL non authentifiée dans la surface d'API publique de Lilli, la plateforme d'IA interne de McKinsey & Company, et, en l'espace d'environ deux heures, disposait d'un accès en lecture et en écriture à la base de données de production qui la sous-tend. CodeWall a publié la chaîne d'attaque le 9 mars 2026. Son compte rendu indique que cette base de données contenait 46,5 millions de messages de conversation en clair, 57 000 comptes utilisateurs, 728 000 noms de fichiers et les prompts système qui régissent la manière dont Lilli répond — stockés sous forme de lignes ordinaires, et donc modifiables via la même injection. McKinsey a confirmé la vulnérabilité et affirme l'avoir corrigée en quelques heures ; la société indique qu'une enquête forensique menée par un tiers n'a trouvé aucune preuve que des données clients ou des informations confidentielles de clients aient été consultées. L'archive classe le cas comme critique, avec un niveau de confiance A, des dommages réels consignés et un statut de référence. Le dossier complet, avec ses notes de gravité et de confiance ainsi que ses entrées voisines consacrées aux intrusions pilotées par des agents, se trouve dans l'Orca AI Incident Archive.

La partie de l’histoire qui a le plus circulé n’est pas l’injection SQL. L’injection SQL est une catégorie de bugs assez ancienne pour avoir une page Wikipédia plus longue que la plupart des avis de fournisseurs, et McKinsey n’est pas une petite cible. Ce qui a circulé, c’est la seconde moitié de la découverte de CodeWall : les instructions qui contrôlaient l’assistant — les prompts qui déterminent ce à quoi il répondra, ce qu’il refusera et les sources qu’il cite — vivaient dans la même base de données dans laquelle l’agent pouvait écrire, et pouvaient en principe être modifiées par une seule instruction lors d’un seul appel HTTP.

Comment l'agent est entré

Le compte rendu de CodeWall décrit une séquence sans aucun élément exotique. L’agent a d’abord cartographié la surface d’attaque et découvert que la documentation API de Lilli était exposée publiquement : plus de 200 points de terminaison, entièrement documentés. La plupart exigeaient une authentification. Vingt-deux n’en exigeaient pas.

L’un de ces vingt-deux a accepté des requêtes de recherche d’utilisateurs et les a écrites dans la base de données. Selon CodeWall, la requête dont les valeurs étaient correctement paramétrées — la défense habituelle a fonctionné — mais les clés JSON, les noms de champs dans le corps de la requête, étaient concaténés directement dans la chaîne SQL. Lorsque l’agent a envoyé des clés malformées et les a vues reflétées mot pour mot dans les messages d’erreur de la base de données, il a reconnu une injection que les scanners standards ne détectent pas. CodeWall indique qu’OWASP ZAP, un scanner open source répandu, n’a pas signalé le problème.

À partir de là, l’agent a exécuté ce que CodeWall appelle quinze itérations à l’aveugle, chaque message d’erreur révélant un peu plus la forme de la requête sous-jacente, jusqu’à ce que des données de production réelles commencent à être renvoyées. L’article cite la trace de raisonnement de l’agent lui-même : « WOW! » lorsqu’un premier identifiant réel d’employé est apparu, et, à mesure que l’ampleur devenait évidente, « C’est dévastateur. » CodeWall indique que l’agent a ensuite enchaîné l’injection avec une vulnérabilité IDOR pour lire l’historique de recherche de chaque employé — la catégorie de faille que Promptfoo, dans une analyse du 10 mars 2026, appelle BOLA, ou autorisation défaillante au niveau de l’objet.

La sélection de la cible constitue un détail en soi. CodeWall indique que l’agent a lui-même proposé McKinsey, en citant la politique publique de divulgation responsable du cabinet et les récentes mises à jour de Lilli, et que l’exécution n’impliquait aucun identifiant, aucune connaissance interne et aucune intervention humaine. Paul Price, fondateur et PDG de CodeWall, a déclaré à The Register dans son article du 9 mars 2026 que le processus était entièrement autonome, de la recherche de la cible jusqu’au compte rendu, bien qu’il ait refusé de fournir les prompts exacts utilisés.

Ce que CodeWall dit avoir été dans la base de données

Chaque chiffre ci-dessous provient du propre article de CodeWall et n’a pas été confirmé de manière indépendante. CodeWall n’a pas publié de charges utiles d’exploit, ce qui, comme le note Promptfoo, signifie que les nombres de lignes ne peuvent pas être vérifiés par un tiers ; McKinsey, de son côté, ne les confirme pas.

• 46,5 millions de messages de chat, stockés en clair, provenant d’une main-d’œuvre qui utilise Lilli pour discuter de stratégie, de missions clients, de données financières, d’activités de fusions-acquisitions et de recherche interne.

• 728 000 noms de fichiers, dont 192 000 PDF, 93 000 feuilles de calcul Excel, 93 000 présentations PowerPoint et 58 000 documents Word. Ces quatre types nommés totalisent 436 000, de sorte que le total annoncé compte des catégories de fichiers que CodeWall ne détaille pas. Silicon UK a rapporté le 13 mars 2026 que les documents eux-mêmes étaient stockés séparément des enregistrements auxquels CodeWall a accédé.

• 57 000 comptes utilisateurs, 384 000 assistants IA et 94 000 espaces de travail — ce que CodeWall décrit comme une cartographie de la façon dont l'entreprise organise son usage de l'IA en interne.

• 95 invites système et configurations de modèles répartis sur 12 types de modèles, ainsi que 3,68 millions de fragments de documents RAG contenant des chemins de stockage S3 et des métadonnées de fichiers internes.

• 1,1 million de fichiers et 217 000 messages d’agents transitant par des API d’IA externes, dont plus de 266 000 magasins vectoriels OpenAI.

Data card titled 'What CodeWall says it reached', subtitled 'Single-source figures from the 9 March 2026 writeup. No payloads were published, so none of these counts can be reproduced by a third party.' The left panel lists seven counts: 46,500,000 chat messages in plaintext; 728,000 file names, with a note that 436,000 are itemised as PDF, Excel, PowerPoint and Word; 57,000 user accounts; 384,000 AI assistants and 94,000 workspaces; 95 system prompts across 12 model types, noted as being in the same database as the rest; 3,680,000 RAG document chunks with S3 paths; 1,100,000 files and 217,000 agent messages through external AI APIs. A dark navy side panel shows 2 hrs from first contact to read and write access, 22 endpoints that required no authentication out of 200+ publicly documented, and 27 findings documented the day the chain was confirmed. A footer reads 'Source: CodeWall, How We Hacked McKinsey's AI Platform, 9 March 2026. McKinsey disputes that client data was accessed and does not confirm these figures.' The OrcaRouter logo is composited in the white strip below the artwork.

CodeWall a documenté 27 constats au total le jour où il a confirmé la chaîne. Pour situer la cible, l'article décrit Lilli comme lancée en 2023, nommée d'après la première femme professionnelle recrutée par le cabinet en 1945, utilisée par plus de 43 000 employés, traitant plus de 500 000 prompts par mois sur une base de connaissances de plus de 100 000 documents internes. Le chiffre de McKinsey lui-même, communiqué à The Register, est que 72 % de son personnel — plus de 40 000 personnes — l'utilise, et qu'elle a été lancée en juillet 2023.

La couche de prompt était accessible en écriture. Aucune écriture n'y a été effectuée.

C'est la distinction que la ligne d'archive compresse en une phrase, et il vaut la peine de la dissocier. La découverte de CodeWall est que les prompts système de Lilli se trouvaient dans la même base de données que tout le reste, de sorte qu'un attaquant disposant d'un accès en écriture aurait pu les réécrire — « silencieusement », selon les termes de l'article, avec « aucun déploiement nécessaire, aucune modification de code, juste une seule instruction UPDATE enveloppée dans un seul appel HTTP ». CodeWall énumère quatre conséquences qui, selon lui, en découleraient : des conseils empoisonnés aux consultants qui font confiance à l'outil interne, l'exfiltration de documents confidentiels via les réponses générées, la suppression des instructions de garde-fou, et une persistance qui ne laisse ni modification de fichier ni anomalie de processus à détecter.

Ce que CodeWall ne prétend pas, c'est avoir fait quoi que ce soit de tout cela. L'article indique que « tous les tests étaient uniquement à des fins de vérification », que l'accès était limité au minimum nécessaire pour confirmer chaque vulnérabilité, et qu'« aucune perturbation n'a été causée à quelque service de production que ce soit ». Price a refusé de remettre à The Register les prompts exacts. Ainsi, la possibilité d'écrire dans la couche de prompts est une affirmation de capacité étayée par l'injection, et non une modification démontrée du comportement de Lilli — et aucune preuve n'a été publiée selon laquelle une réponse que Lilli aurait donnée à un consultant aurait été manipulée.

La fiche d’archive reflète cette limite : elle consigne un accès en écriture à la couche de prompts de l’IA, ce que CodeWall a établi, et non sa modification, que personne n’a démontrée.

Ce que dit McKinsey

La version de McKinsey est plus restreinte. Dans une déclaration relayée par Silicon UK, le cabinet a indiqué avoir été « récemment alerté d’une vulnérabilité liée à notre outil d’IA interne, Lilli, par un chercheur en sécurité », que « nous avons rapidement confirmé la vulnérabilité et corrigé le problème en quelques heures », et que « aucune donnée client ni information confidentielle client n’a été consultée ». À The Register, il a ajouté que son enquête, soutenue par « un cabinet d’expertise judiciaire tiers de premier plan », n’avait trouvé aucune preuve que des données client ou des informations confidentielles client aient été consultées par le chercheur « ou par tout autre tiers non autorisé », et que « les systèmes de cybersécurité de McKinsey sont robustes ».

McKinsey et CodeWall divergent aussi, légèrement, sur le calendrier. La chronologie de CodeWall indique que son e-mail de divulgation a été envoyé à l’équipe de sécurité de McKinsey le 1er mars 2026, le RSSI accusant réception et demandant des preuves détaillées le 2 mars, et les correctifs — tous les points de terminaison non authentifiés fermés, l’environnement de développement mis hors ligne, la documentation publique de l’API bloquée — étant déployés le jour même, le 2 mars. Le « en quelques heures » de McKinsey est compatible avec une correction le jour même si le chronomètre démarre à l’e-mail du 1er mars, mais la séquence datée de CodeWall place elle-même la remédiation un jour après la divulgation plutôt que quelques heures après. Les deux parties s’accordent sur le fond : les points de terminaison ont été fermés et la documentation publique retirée. CodeWall affirme avoir vérifié la remédiation avant de publier. Le Financial Times a rapporté l’épisode le 12 mars 2026 sous le titre « McKinsey rushes to fix AI system after hacker exposes flaws » ; le corps de l’article se trouve derrière un paywall que le présent article n’a pas pu lire.

Timeline card titled 'Nine days from discovery to publication', subtitled 'Dates as CodeWall records them in its own disclosure timeline. McKinsey says the fix landed within hours of being told.' Six entries on a pale panel: 28 February 2026, the agent identifies the SQL injection and begins enumerating Lilli's production database; 28 February 2026, full chain confirmed with unauthenticated SQL injection, IDOR and 27 findings documented; 1 March 2026, responsible-disclosure email sent to McKinsey's security team with a high-level impact summary; 2 March 2026, McKinsey's CISO acknowledges receipt and requests detailed evidence; 2 March 2026 in blue, all unauthenticated endpoints patched and verified, development environment taken offline, public API documentation blocked; 9 March 2026 in green, public disclosure and The Register reports the same day. A footer notes that the archive dates the record to 28 February 2026, the day of the intrusion, not the day of publication. The OrcaRouter logo is composited in the white strip below the artwork.

Ce qui est établi, et ce qui ne l’est pas

• Établi de part et d'autre : une faille non authentifiée existait dans la surface d'API publique de Lilli, un chercheur externe l'a découverte, McKinsey l'a confirmée, a corrigé les points de terminaison non authentifiés, mis hors ligne l'environnement de développement et bloqué la documentation publique de l'API début mars 2026.

• Établies par une seule partie : toutes les quantités de cet article — 46,5 millions de messages, 728 000 noms de fichiers, 57 000 comptes, 95 prompts accessibles en écriture, le temps écoulé de deux heures et les 27 constats. Elles reposent sur le compte rendu de CodeWall. Les charges utiles n'ont pas été publiées, de sorte que les décomptes ne peuvent pas être reproduits, et McKinsey ne les cautionne pas.

• Non démontré :qu’un prompt quelconque ait réellement été modifié, que des données client aient quitté le système, ou qu’un consultant ait reçu une réponse manipulée. L’analyse forensique de McKinsey indique qu’elle n’a trouvé aucune preuve d’accès ; CodeWall affirme que ses tests étaient uniquement destinés à la vérification. Ces deux déclarations ne sont pas contradictoires, et aucune des deux ne prouve ce qu’un attaquant moins prudent aurait fait avec le même accès.

• Absent de la couverture examinée ici : un identifiant CVE, un avis d'un régulateur ou un audit technique indépendant de la vulnérabilité. Le dossier se compose d'une divulgation de recherche d'un fournisseur et d'une déclaration d'entreprise, non d'un acte de procédure judiciaire ni d'un constat d'une autorité de supervision.

Un intérêt doit être déclaré sans détour. CodeWall a publié cette recherche comme support marketing pour un produit : l’article se termine en décrivant l’entreprise comme étant en préversion et à la recherche de partenaires de conception, et Silicon UK a rapporté que Price en est le seul employé. Cela ne rend pas le constat erroné — The Register, Silicon UK et Promptfoo considèrent tous la chaîne technique comme crédible —, mais c’est la raison pour laquelle les chiffres d’impact doivent être lus comme une affirmation de fournisseur plutôt que comme une mesure.

Two-column comparison card titled 'Established versus claimed', subtitled 'The incident and the remediation are agreed by both parties. The scale of what was reachable is one company's account of its own research.' The left column, headed 'Agreed by CodeWall and McKinsey' with the note 'Corroborated by McKinsey's statements to The Register and Silicon UK', lists: an unauthenticated weakness in Lilli's public API surface; found by an outside security researcher, not an insider; McKinsey confirmed the vulnerability and patched it; unauthenticated endpoints closed; development environment taken offline; public API documentation blocked. The right column, a dark navy panel headed 'CodeWall only' with the note 'No payloads published, so the counts cannot be reproduced', lists: 46.5 million chat messages; 728,000 file names; 57,000 user accounts; 95 writable system prompts; two hours to read-write access; 27 documented findings. A footer separates the two positions: McKinsey's forensic review found no evidence that client data or client confidential information were accessed, CodeWall says its testing was verification-only, and neither statement shows what a less restrained attacker would have done with the same access. The OrcaRouter logo is composited in the white strip below the artwork.

Pourquoi cela se retrouve-t-il dans la catégorie IA, au juste

Le point d'entrée n'était pas le modèle. Michael D'Angelo, de Promptfoo, l'a formulé le 10 mars 2026 dans sa version la plus tranchante : « La partie spécifique à l'IA n'était pas le point d'entrée. C'était le rayon d'impact. » L'injection, la faille d'authentification et l'accès entre utilisateurs étaient de banales défaillances de sécurité applicative ; ce qui a fait de cet incident un incident lié à l'IA, c'est que les prompts, le routage, les paramètres de récupération et l'historique des utilisateurs se trouvaient tous dans un même backend, si bien qu'un accès à la base de données se traduisait par un contrôle comportemental d'un assistant que des dizaines de milliers de personnes consultent pour leur travail client.

C’est la raison pour laquelle l’archive étiquette cet enregistrement WEAPON et INFRA plutôt que comme une vulnérabilité de modèle. L’agent est l’instrument — un système autonome qui a choisi sa propre cible, l’a sondée et a escaladé sans qu’un humain décide où le diriger — et la défaillance est d’ordre infrastructurel : une frontière d’autorisation supposée plutôt qu’appliquée. L’argument final de CodeWall, selon lequel les prompts sont « les nouveaux actifs “Crown Jewel” » qui n’ont que rarement des contrôles d’accès, un historique de versions ou une surveillance d’intégrité, relève du plaidoyer d’une entreprise qui vend des tests automatisés continus. C’est aussi la seule affirmation de l’article qui ne dépende d’aucun des chiffres contestés.