En injektion, två lager

En autonom agent nådde McKinseys produktionsdatabas för Lilli via en oautentiserad ändpunkt. Instruktionerna som styrde assistenten fanns i samma databas.

En rad med fem rundade block märkta "autentisering krävs" sitter ovanför en etikett med texten "Offentlig API-yta · 200+ dokumenterade ändpunkter"; det tredje blocket är markerat i bärnstensgult och märkt "ingen autentisering · sökning". En heldragen cyan linje faller från det blocket ned i en andra rad med fem databasskivor märkta chattmeddelanden, filer, konton, arbetsytor och systemprompter, med rubriken "Produktionsdatabas · läs och skriv". En streckad bärnstensfärgad pil faller från skivan "systemprompter" ned i en mörkt marinblå panel med texten "Promptlager — instruktionerna som styrde assistenten var rader i denna samma databas. En UPDATE över ett enda HTTP-anrop skulle ändra dem: ingen driftsättning, ingen kodändring." Fyra statistikrutor längs nederkanten anger 22 ändpunkter som inte kräver autentisering, 2 timmar till läs- och skrivåtkomst, 95 systemprompter i samma databas och offentliggörande den 9 mars. OrcaRouter-logotypen är inkomponerad i den vita remsan under grafiken.
AI Safety Incidents

En AI-agent hackade McKinsey's Lilli på två timmar. Prompterna var skrivbara.

Författare

Rowan Sterling

Publiceringsdatum

Senaste modellerna · 20Visa alla modeller →
Benchmarks: Artificial Analysis · uppdateras dagligen
Tillbaka till alla inlägg

Den 28 februari 2026 hittade en autonom offensiv säkerhetsagent som drivs av säkerhetsstartupen CodeWall en oautentiserad SQL-injektion i det publika API:et för Lilli, McKinsey & Companys interna AI-plattform, och hade inom ungefär två timmar läs- och skrivåtkomst till produktionsdatabasen bakom den. CodeWall publicerade attackkedjan den 9 mars 2026. Enligt dess redogörelse innehöll databasen 46,5 miljoner chattmeddelanden i klartext, 57 000 användarkonton, 728 000 filnamn och de systempromptar som styr hur Lilli svarar – lagrade som vanliga rader och därför skrivbara genom samma injektion. McKinsey bekräftade sårbarheten och uppger att man åtgärdade den inom några timmar; man uppger att en extern forensisk undersökning inte fann några bevis för att klientdata eller konfidentiell klientinformation hade åtkommits. Arkivet klassar posten som kritisk, med konfidensgrad A, dokumenterad faktisk skada och landmärkesstatus. Den fullständiga posten, med sina allvarlighets- och konfidensgrader och sina närliggande poster om agentdrivna intrång, finns i Orca AI Incident Archive.

Den del av berättelsen som har spridits längst är inte SQL-injektionen. SQL-injektion är en buggklass som är så gammal att den har en Wikipedia-sida som är längre än de flesta leverantörsrådgivningar, och McKinsey är inte ett litet mål. Det som har spridits är den andra halvan av CodeWalls fynd: att de instruktioner som styr assistenten – prompterna som avgör vad den ska svara, vad den vägrar och vilka källor den citerar – fanns i samma databas som agenten kunde skriva till, och i princip kunde ändras med ett enda statement via ett enda HTTP-anrop.

Hur agenten tog sig in

CodeWalls genomgång beskriver en sekvens utan något exotiskt inslag. Agenten kartlade först attackytan och fann att Lillis API-dokumentation var offentligt exponerad: fler än 200 slutpunkter, fullständigt dokumenterade. De flesta krävde autentisering. Tjugotvå gjorde det inte.

En av dessa tjugotvå tog emot användarsökfrågor och skrev dem till databasen. Enligt CodeWall var frågans värden var säkert parametrerade – det vanliga försvaret fungerade – men JSON-nycklarna, fältnamnen i förfrågans body, sammanfogades direkt in i SQL-strängen. När agenten skickade felformade nycklar och såg dem återges ordagrant i databasens felmeddelanden, identifierade den en injektion som standardskannrar inte fångar. CodeWall uppger att OWASP ZAP, en vanlig skanner med öppen källkod, inte flaggade problemet.

Därifrån genomförde agenten vad CodeWall kallar femton blinda iterationer, där varje felmeddelande avslöjade lite mer om formen på den underliggande frågan, tills skarp produktionsdata började komma tillbaka. Inlägget citerar agentens eget resonemangsspår: "WOW!" när den första riktiga identifieraren för en anställd dök upp, och, när omfattningen blev tydlig, "Det här är förödande." CodeWall säger att agenten sedan kedjade ihop injektionen med en IDOR-sårbarhet för att läsa enskilda anställdas sökhistorik – den typ av bugg som Promptfoo i en analys från 10 mars 2026 kallar BOLA, eller bruten auktorisering på objektnivå.

Målvalet är en egen detalj. CodeWall säger att agenten själv föreslog McKinsey, med hänvisning till företagets offentliga policy för ansvarsfull avslöjande och nyliga uppdateringar av Lilli, och att körningen inte involverade några autentiseringsuppgifter, ingen insiderkunskap och ingen människa i loopen. Paul Price, CodeWalls grundare och vd, sade till The Register i dess rapport den 9 mars 2026 att processen var helt autonom från att undersöka målet till att rapportera, men han ville inte lämna ut de exakta prompter som användes.

Vad CodeWall säger fanns i databasen

Alla siffror nedan kommer från CodeWalls eget inlägg och har inte bekräftats oberoende. CodeWall publicerade inte exploit-nyttolaster, vilket Promptfoo påpekar innebär att radantalen inte kan kontrolleras av en tredje part; McKinsey å sin sida bekräftar dem inte.

• 46,5 miljoner chattmeddelanden, lagrade i klartext, från en arbetsstyrka som använder Lilli för att diskutera strategi, kunduppdrag, ekonomi, M&A-verksamhet och intern forskning.

• 728 000 filnamn, inklusive 192 000 PDF-filer, 93 000 Excel-kalkylblad, 93 000 PowerPoint-presentationer och 58 000 Word-dokument. De fyra namngivna typerna uppgår till 436 000, så den angivna totalsumman räknar filkategorier som CodeWall inte specificerar. Silicon UK rapporterade den 13 mars 2026 att själva dokumenten förvarades separat från de register som CodeWall fick åtkomst till.

• 57 000 användarkonton, 384 000 AI-assistenter och 94 000 arbetsytor – vilket CodeWall beskriver som en karta över hur företaget organiserar sin interna AI-användning.

• 95 systemprompter och modellkonfigurationer över 12 modelltyper, plus 3,68 miljoner RAG-dokumentchunkar som innehåller S3-lagringsvägar och intern filmetadata.

• 1,1 miljoner filer och 217 000 agentmeddelanden som passerar genom externa AI-API:er, inklusive mer än 266 000 OpenAI-vektorlager.

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 dokumenterade totalt 27 fynd samma dag som man bekräftade kedjan. Som kontext om målet beskriver inlägget Lilli som lanserad 2023, uppkallad efter den första yrkesverksamma kvinnan som byrån anställde 1945, använd av fler än 43 000 anställda och med bearbetning av över 500 000 promptar i månaden mot en kunskapsbas med över 100 000 interna dokument. McKinsey själva uppger, i en siffra som lämnats till The Register, att 72 % av personalen – fler än 40 000 personer – använder den, och att den lanserades i juli 2023.

Promptlagret var skrivbart. Det skrevs inte till.

Detta är den distinktion som arkivraden komprimerar till en fras, och den är värd att särskilja. CodeWalls upptäckt är att Lillis systempromptar låg i samma databas som allt annat, så en angripare med skrivåtkomst skulle ha kunnat skriva om dem – "tyst", enligt inläggets formulering, med "ingen driftsättning behövdes, ingen kodändring, bara en enda UPDATE-sats insvept i ett enda HTTP-anrop". CodeWall listar fyra konsekvenser som det sägs skulle följa: förgiftade råd till konsulter som litar på det interna verktyget, exfiltrering av konfidentiellt material genom genererade svar, borttagning av skyddsräckesinstruktioner och persistens som inte lämnar någon filändring eller processanomali att upptäcka.

Det CodeWall inte hävdar är att det gjorde något av detta. Inlägget anger att "all testning var enbart verifiering", att åtkomsten begränsades till det minimum som krävdes för att bekräfta varje sårbarhet, och att "ingen störning orsakades för någon produktionsjänst". Price avböjde att ge The Register de exakta prompterna. Så skrivbarheten hos promptlagret är ett påstående om förmåga som stöds av injektionen, inte en påvisad förändring av Lillis beteende – och inga bevis har publicerats för att något svar som Lilli gav en konsult någonsin manipulerades.

Arkivposten återspeglar den gränsdragningen: den registrerar skrivåtkomst till AI-promptlagret, vilket är vad CodeWall upprättade, inte ändring av det, vilket ingen har visat.

Vad McKinsey säger

McKinseys redogörelse är snävare. I ett uttalande som återgivits av Silicon UK sade företaget att det "nyligen hade uppmärksammats på en sårbarhet kopplad till vårt interna AI-verktyg Lilli av en säkerhetsforskare", att "vi snabbt bekräftade sårbarheten och åtgärdade problemet inom några timmar" och att "ingen klientdata eller konfidentiell klientinformation hade åtkommits". Till The Register tillade företaget att dess utredning, med stöd av "en ledande extern forensisk firma", inte identifierade några bevis för att klientdata eller konfidentiell klientinformation hade åtkommits av forskaren "eller någon annan obehörig tredje part", och att "McKinsey cybersäkerhetssystem är robusta".

McKinsey och CodeWall skiljer sig också, i viss mån, åt när det gäller tidpunkten. CodeWalls tidslinje anger att företagets mejl om avslöjandet skickades till McKinseys säkerhetsteam den 1 mars 2026, att CISO bekräftade mottagandet och begärde detaljerade bevis den 2 mars, och att patcharna – alla oautentiserade slutpunkter stängdes, utvecklingsmiljön togs offline och offentlig API-dokumentation blockerades – genomfördes samma dag, den 2 mars. McKinseys ”inom några timmar” är förenligt med en åtgärd samma dag om klockan startar vid mejlet den 1 mars, men CodeWalls egen daterade sekvens placerar avhjälpandet en dag efter avslöjandet snarare än timmar efter. Båda parter är överens om sakfrågan: slutpunkterna stängdes och den offentliga dokumentationen drogs tillbaka. CodeWall uppger att man verifierade avhjälpandet före publiceringen. Financial Times rapporterade om händelsen den 12 mars 2026 under rubriken ”McKinsey rushes to fix AI system after hacker exposes flaws”; artikelns brödtext ligger bakom en betalvägg som denna text inte har kunnat läsa.

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.

Vad som är etablerat, och vad som inte är det

• Fastställt från båda håll: en oautentiserad svaghet fanns i Lillis publika API-yta, en extern forskare upptäckte den, McKinsey bekräftade den, patchade de oautentiserade slutpunkterna, tog utvecklingsmiljön offline och blockerade den publika API-dokumentationen i början av mars 2026.

• Fastställt av endast en part: varje siffra i den här artikeln — 46,5 miljoner meddelanden, 728 000 filnamn, 57 000 konton, 95 skrivbara promptar, den två timmar långa tidsåtgången och de 27 fynden. Dessa vilar på CodeWalls redogörelse. Nyttolasterna publicerades inte, så antalen kan inte återges, och McKinsey står inte bakom dem.

• Inte visat: att någon prompt faktiskt ändrades, att några klientdata lämnade systemet eller att någon konsult fick ett manipulerat svar. McKinsey:s forensiska granskning säger att den inte fann några bevis för åtkomst; CodeWall säger att dess testning endast var verifiering. Dessa två uttalanden strider inte mot varandra, och inget av dem bevisar vad en mindre återhållsam angripare skulle ha gjort med samma åtkomst.

• Saknas i den bevakning som granskats här: en CVE-identifierare, ett meddelande från en tillsynsmyndighet eller en oberoende teknisk granskning av sårbarheten. Uppgiften är en forskningsredogörelse från leverantören plus ett företagsuttalande, inte en domstolsinlaga eller ett tillsynsbeslut.

Ett intresse bör redovisas öppet. CodeWall publicerade forskningen som marknadsföring för en produkt: inlägget avslutas med att beskriva företaget som i tidig förhandsvisning och sökande efter designpartners, och Silicon UK rapporterade att Price är dess enda anställda. Det gör inte fyndet felaktigt – The Register, Silicon UK och Promptfoo behandlar alla den tekniska kedjan som trovärdig – men det är anledningen till att effektsiffrorna bör läsas som en leverantörs påstående snarare än en mätning.

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.

Varför det överhuvudtaget hamnar i AI-kategorin

Ingångspunkten var inte modellen. Promptfoos Michael D'Angelo framförde argumentet den 10 mars 2026 i sin skarpaste formulering: "Den AI-specifika delen var inte ingångspunkten. Det var skadeomfånget." Injektionen, autentiseringsluckan och åtkomsten mellan användare var vanliga applikationssäkerhetsfel; det som gjorde incidenten till en AI-incident var att prompts, routning, hämtningsinställningar och användarhistorik alla låg i en och samma backend, så att databasåtkomst omvandlades till beteendekontroll över en assistent som tiotusentals människor rådfrågar för kundarbete.

Det är därför arkivet märker denna post som WEAPON och INFRA i stället för som en modellsårbarhet. Agenten är instrumentet – ett autonomt system som valde sitt eget mål, undersökte det och eskalerade utan att en människa beslutade vart det skulle riktas – och felet är infrastrukturellt: en auktoriseringsgräns som antogs snarare än upprätthölls. CodeWalls avslutande argument, att promptar är "de nya kronjuvel-tillgångarna" som sällan har åtkomstkontroller, versionshistorik eller integritetsövervakning, är påverkansarbete från ett företag som säljer kontinuerlig automatiserad testning. Det är också det enda påståendet i inlägget som inte beror på någon av de omtvistade siffrorna.