Abstracte technische diagramkaart met de titel 'Eén injectie, twee lagen', ondertitel 'Een autonome agent bereikte McKinsey's Lilli-productiedatabase via een niet-geauthenticeerd endpoint. De instructies die de assistent aanstuurden stonden in dezelfde database.' Een rij van vijf afgeronde blokken met het label 'auth vereist' staat boven een label met de tekst 'Openbaar API-oppervlak · 200+ gedocumenteerde endpoints'; het derde blok is amberkleurig gemarkeerd en voorzien van 'geen auth · zoeken'. Een ononderbroken cyaan lijn loopt van dat blok naar een tweede rij van vijf databaseplaten met de labels chatberichten, bestanden, accounts, workspaces en systeemprompts, onder de kop 'Productiedatabase · lezen en schrijven'. Een gestippelde amberkleurige pijl loopt van de plaat 'systeemprompts' naar een donker marineblauw paneel met de tekst 'Promptlaag — de instructies die de assistent aanstuurden waren rijen in diezelfde database. Eén UPDATE via één HTTP-aanroep zou ze wijzigen: geen deployment, geen codewijziging.' Vier statistiektegels onderaan vermelden 22 endpoints waarvoor geen authenticatie nodig is, 2 uur tot lees- en schrijftoegang, 95 systeemprompts in dezelfde database en 9 maart openbare bekendmaking. Het OrcaRouter-logo is samengevoegd in de witte strook onder de illustratie.
AI Safety Incidents

Een AI-agent hackte McKinsey's Lilli in twee uur. De prompts waren schrijfbaar.

Auteur

Rowan Sterling

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

Op 28 februari 2026 ontdekte een autonome offensieve beveiligingsagent van de beveiligingsstartup CodeWall een niet-geauthenticeerde SQL-injectie in het publieke API-oppervlak van Lilli, het interne AI-platform van McKinsey & Company, en binnen ongeveer twee uur had die lees- en schrijftoegang tot de productiedatabase erachter. CodeWall publiceerde de aanvalsketen op 9 maart 2026. Volgens zijn verslag bevatte die database 46,5 miljoen chatberichten in platte tekst, 57.000 gebruikersaccounts, 728.000 bestandsnamen en de systeemprompts die bepalen hoe Lilli antwoordt — opgeslagen als gewone rijen en daarom schrijfbaar via dezelfde injectie. McKinsey bevestigde de kwetsbaarheid en zegt dat die binnen enkele uren is verholpen; het bedrijf zegt dat een forensisch onderzoek door een derde partij geen bewijs heeft gevonden dat klantgegevens of vertrouwelijke klantinformatie zijn geraadpleegd. Het archief beoordeelt het record als kritiek, met betrouwbaarheid A, geregistreerde reële schade en mijlpaalstatus. Het volledige record, met de ernst- en betrouwbaarheidsclassificaties en de aangrenzende vermeldingen over door agents gedreven intrusies, staat in het Orca AI Incident Archive.

Het deel van het verhaal dat het verst heeft gereisd, is niet de SQL-injectie. SQL-injectie is een bugklasse die oud genoeg is om een Wikipedia-pagina te hebben die langer is dan de meeste leveranciersadviezen, en McKinsey is geen klein doelwit. Wat wel heeft gereisd, is de tweede helft van CodeWalls bevinding: dat de instructies die de assistent aansturen — de prompts die bepalen wat hij antwoordt, wat hij weigert en welke bronnen hij citeert — in dezelfde database stonden waarnaar de agent kon schrijven, en in principe konden worden gewijzigd met één statement via één HTTP-aanroep.

Hoe de agent binnenkwam

De write-up van CodeWall beschrijft een reeks waarin geen exotisch element voorkomt. De agent bracht eerst het aanvalsoppervlak in kaart en ontdekte dat Lilli's API-documentatie publiekelijk toegankelijk was: meer dan 200 endpoints, volledig gedocumenteerd. De meeste vereisten authenticatie. Tweeëntwintig niet.

Een van die tweeëntwintig accepteerde gebruikerszoekopdrachten en schreef ze naar de database. Volgens CodeWall werden de querywaarden veilig geparameteriseerd — de gebruikelijke verdediging werkte — maar de JSON-sleutels, de veldnamen in de request body, werden rechtstreeks aan de SQL-string geconcateneerd. Toen de agent misvormde sleutels verstuurde en zag dat ze letterlijk werden weerspiegeld in databasefoutmeldingen, herkende hij een injectie die standaardscanners niet detecteren. CodeWall stelt dat OWASP ZAP, een veelgebruikte opensource-scanner, het probleem niet markeerde.

Vanaf dat punt voerde de agent wat CodeWall vijftien blinde iteraties noemt uit, waarbij elke foutmelding iets meer prijsgaf over de vorm van de onderliggende query, totdat er live productiedata begon binnen te komen. Het bericht citeert de eigen redeneertrace van de agent: "WOW!" toen de eerste echte werknemersidentificatie verscheen, en, toen de omvang duidelijk werd, "Dit is rampzalig." CodeWall zegt dat de agent vervolgens de injectie aan een IDOR-kwetsbaarheid ketende om de zoekgeschiedenissen van individuele werknemers te lezen — het type bug dat Promptfoo in een analyse van 10 maart 2026 BOLA noemt, oftewel broken object-level authorisation.

De doelwitselectie is een detail op zich. CodeWall zegt dat de agent zelf McKinsey heeft voorgesteld, onder verwijzing naar het publieke responsible-disclosurebeleid van het kantoor en recente updates aan Lilli, en dat er bij de run geen inloggegevens, geen insiderkennis en geen mens in de loop waren betrokken. Paul Price, oprichter en CEO van CodeWall, vertelde The Register in het rapport van 9 maart 2026 dat het proces volledig autonoom verliep, van het onderzoeken van het doelwit tot en met de rapportage, hoewel hij weigerde de exacte gebruikte prompts te verstrekken.

Wat CodeWall zegt dat er in de database stond

Elk cijfer hieronder is afkomstig uit het eigen bericht van CodeWall en is niet onafhankelijk bevestigd. CodeWall heeft geen exploit-payloads gepubliceerd, wat er volgens Promptfoo op neerkomt dat de aantallen rijen niet door een derde partij kunnen worden gecontroleerd; McKinsey bevestigt ze van zijn kant niet.

• 46,5 miljoen chatberichten, opgeslagen in platte tekst, van een personeelsbestand dat Lilli gebruikt om strategie, klantopdrachten, financiële gegevens, M&A-activiteit en intern onderzoek te bespreken.

• 728.000 bestandsnamen, waaronder 192.000 pdf's, 93.000 Excel-spreadsheets, 93.000 PowerPoint-presentaties en 58.000 Word-documenten. Die vier genoemde typen komen samen uit op 436.000, dus het totaal in de kop telt bestandscategorieën mee die CodeWall niet afzonderlijk opsomt. Silicon UK meldde op 13 maart 2026 dat de documenten zelf gescheiden van de records die CodeWall bereikte werden opgeslagen.

• 57.000 gebruikersaccounts, 384.000 AI-assistenten en 94.000 werkruimten — die CodeWall omschrijft als een kaart van hoe het bedrijf zijn AI-gebruik intern organiseert.

• 95 systeemprompts en modelconfiguraties verspreid over 12 modeltypen, plus 3,68 miljoen RAG-documentchunks met S3-opslagpaden en interne bestandsmetadata.

• 1,1 miljoen bestanden en 217.000 agentberichten die via externe AI-api's gaan, waaronder meer dan 266.000 OpenAI-vectorstores.

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 documenteerde die dag in totaal 27 bevindingen toen het de keten bevestigde. Voor context over het doelwit beschrijft de post Lilli als gelanceerd in 2023, vernoemd naar de eerste professionele vrouw die in 1945 door het bedrijf werd aangenomen, gebruikt door meer dan 43.000 werknemers, en meer dan 500.000 prompts per maand verwerkend over een kennisbank van meer dan 100.000 interne documenten. McKinsey's eigen cijfer, aan The Register gegeven, is dat 72% van zijn medewerkers — meer dan 40.000 mensen — het gebruiken, en dat het in juli 2023 werd gelanceerd.

De promptlaag was beschrijfbaar. Er is niet in geschreven.

Dit is het onderscheid dat de archiefrij tot één zin samendrukt, en het is de moeite waard om het apart te belichten. De bevinding van CodeWall is dat de systeemprompts van Lilli in dezelfde database stonden als al het andere, zodat een aanvaller met schrijftoegang ze had kunnen herschrijven — "stilletjes", in de bewoording van het bericht, met "geen deployment nodig, geen codewijziging, slechts één UPDATE-statement verpakt in één HTTP-aanroep". CodeWall noemt vier gevolgen die daar volgens hen uit zouden volgen: vergiftigd advies aan consultants die de interne tool vertrouwen, exfiltratie van vertrouwelijk materiaal via gegenereerde antwoorden, verwijdering van guardrail-instructies, en persistentie die geen bestandswijziging of procesanomalie achterlaat om te detecteren.

Wat CodeWall niet beweert, is dat het een van deze dingen heeft gedaan. In het bericht staat dat "alle tests alleen verificatie waren", dat de toegang beperkt bleef tot het minimum dat nodig was om elke kwetsbaarheid te bevestigen, en dat "geen enkele productiedienst werd verstoord". Price wilde The Register de exacte prompts niet geven. De schrijfbaarheid van de promptlaag is dus een capaciteitsclaim die door de injectie wordt onderbouwd, niet een aangetoonde wijziging van Lilli's gedrag — en er is geen bewijs gepubliceerd dat een antwoord dat Lilli aan een consultant gaf ooit is gemanipuleerd.

Het archiefrecord weerspiegelt die grens: het registreert schrijftoegang tot de AI-promptlaag, wat CodeWall heeft vastgesteld, niet wijziging daarvan, wat niemand heeft aangetoond.

Wat McKinsey zegt

De verklaring van McKinsey is beperkter. In een verklaring die door Silicon UK werd gepubliceerd, zei het bedrijf dat het "onlangs door een beveiligingsonderzoeker was geattendeerd op een kwetsbaarheid met betrekking tot onze interne AI-tool, Lilli", dat "we de kwetsbaarheid onmiddellijk bevestigden en het probleem binnen enkele uren verhielpen", en dat "er geen toegang is verkregen tot klantgegevens of vertrouwelijke klantinformatie". Aan The Register voegde het toe dat uit zijn onderzoek, ondersteund door "een vooraanstaand forensisch onderzoeksbureau van derden", geen bewijs naar voren kwam dat de onderzoeker "of enige andere onbevoegde derde partij" toegang had verkregen tot klantgegevens of vertrouwelijke klantinformatie, en dat "de cybersecuritysystemen van McKinsey robuust zijn".

McKinsey en CodeWall verschillen ook enigszins van mening over de timing. In de tijdlijn van CodeWall staat dat de openbaarmakingsmail op 1 maart 2026 naar het beveiligingsteam van McKinsey ging, dat de CISO de ontvangst op 2 maart bevestigde en om gedetailleerd bewijs vroeg, en dat de patches — alle niet-geauthenticeerde endpoints gesloten, de ontwikkelomgeving offline gehaald, openbare API-documentatie geblokkeerd — dezelfde dag, 2 maart, werden doorgevoerd. McKinsey's "binnen enkele uren" is verenigbaar met een oplossing dezelfde dag als de klok begint bij de e-mail van 1 maart, maar de eigen gedateerde reeks van CodeWall plaatst de herstelactie een dag na de openbaarmaking in plaats van binnen enkele uren. Beide partijen zijn het eens over de kern: de endpoints werden gesloten en de openbare documentatie werd ingetrokken. CodeWall zegt dat het de herstelactie vóór publicatie heeft geverifieerd. The Financial Times berichtte op 12 maart 2026 over de kwestie onder de kop "McKinsey haast zich om AI-systeem te repareren nadat hacker gebreken blootlegt"; de artikeltekst bevindt zich achter een betaalmuur die dit stuk niet kon lezen.

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.

Wat is vastgesteld, en wat niet

• Vastgesteld, door beide partijen: er bestond een niet-geauthenticeerde kwetsbaarheid in het openbare API-oppervlak van Lilli; een externe onderzoeker ontdekte deze, McKinsey bevestigde deze, patchte de niet-geauthenticeerde endpoints, haalde de ontwikkelomgeving offline en blokkeerde begin maart 2026 de openbare API-documentatie.

• Alleen door één partij vastgesteld: elk aantal in dit artikel — 46,5 miljoen berichten, 728.000 bestandsnamen, 57.000 accounts, 95 beschrijfbare prompts, de verstreken tijd van twee uur en de 27 bevindingen. Deze berusten op CodeWall's write-up. Payloads zijn niet gepubliceerd, dus de aantallen kunnen niet worden gereproduceerd, en McKinsey onderschrijft ze niet.

• Niet aangetoond: dat enige prompt daadwerkelijk is gewijzigd, dat er klantgegevens het systeem hebben verlaten, of dat enige consultant een gemanipuleerd antwoord heeft ontvangen. McKinsey's forensische onderzoek zegt dat het geen bewijs van toegang heeft gevonden; CodeWall zegt dat zijn tests uitsluitend verificatie waren. Die twee uitspraken zijn niet met elkaar in tegenspraak, en geen van beide bewijst wat een minder terughoudende aanvaller met dezelfde toegang zou hebben gedaan.

• Niet aanwezig in de hier beoordeelde berichtgeving: een CVE-identificatie, een kennisgeving van een toezichthouder of een onafhankelijke technische audit van de kwetsbaarheid. Het dossier bestaat uit een onderzoeksopenbaarmaking door de leverancier plus een bedrijfsverklaring, niet uit een gerechtelijk stuk of een bevinding van een toezichthouder.

Een belang moet duidelijk worden vermeld. CodeWall publiceerde het onderzoek als marketing voor een product: de post eindigt met de beschrijving van het bedrijf als in vroege preview en op zoek naar designpartners, en Silicon UK meldde dat Price de enige werknemer is. Dat maakt de bevinding niet onjuist — The Register, Silicon UK en Promptfoo beschouwen de technische keten allemaal als geloofwaardig — maar het is de reden waarom de impactcijfers moeten worden gelezen als een claim van een leverancier in plaats van een meting.

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.

Waarom het überhaupt in de AI-categorie valt

Het toegangspunt was niet het model. Michael D'Angelo van Promptfoo maakte dit op 10 maart 2026 met de scherpste formulering ervan: "Het AI-specifieke deel was niet het toegangspunt. Het was de blast radius." De injectie, het gat in de authenticatie en de toegang tussen gebruikers waren gewone fouten in de applicatiebeveiliging; wat het incident tot een AI-incident maakte, was dat prompts, routing, retrieval-instellingen en gebruikersgeschiedenis allemaal in één backend zaten, zodat toegang tot de database veranderde in gedragsmatige controle over een assistent die tienduizenden mensen raadplegen voor cliëntwerk.

Dat is de reden dat het archief dit record markeert als WEAPON en INFRA in plaats van als een modelkwetsbaarheid. De agent is het instrument — een autonoom systeem dat zijn eigen doelwit koos, het aftastte en escaleerde zonder dat een mens bepaalde waarop het gericht moest worden — en de fout zit in de infrastructuur: een autorisatiegrens die werd verondersteld in plaats van afgedwongen. Het slotargument van CodeWall — dat prompts "de nieuwe kroonjuwelen" zijn die zelden toegangscontroles, versiegeschiedenis of integriteitsmonitoring hebben — is promotie van een bedrijf dat doorlopende geautomatiseerde tests verkoopt. Het is ook de enige bewering in het bericht die niet van een van de betwiste cijfers afhangt.