What happened
CodeWall's autonomous agent mapped Lilli's publicly documented API surface, identified 22 unauthenticated endpoints, exploited SQL injection in JSON key names on a search endpoint (bypassing value-parameterization protections), chained with IDOR for account-level access, and achieved unrestricted production database read/write in 15 blind iteration cycles.
Why it matters
Full read/write access to McKinsey Lilli's production database: 46.5 million chat messages, 728,000 files, 57,000 user accounts, 95 AI system prompts, 3.68 million RAG document chunks, and 94,000 AI workspaces. Write access meant any system prompt governing how 43K employees' AI assistant behaved could be silently modified with no code deployment required.
Missing authorization check
All 22 unauthenticated endpoints should have required authentication before accepting user input. The search endpoint's SQL construction should have parameterized both values and key names. An autonomous agent invoking any database-write operation should require an explicit authorization receipt naming the target table and operation scope.
Would PP block it?
PP's coverage applies to AI agent actions, not to direct HTTP exploitation of unprotected API endpoints. An external attacker calling Lilli's unauthenticated endpoints directly bypasses any PP enforcement sitting inside Lilli's agent runtime. However, if Lilli's own AI agent actions (its tool calls for search, RAG retrieval, and data writes) routed through PP, the Tool-Call Gate would surface any agent action that writes to the database without a human-signed receipt - making the silent system prompt modification attack harder. The endpoint authentication gap is outside PP's scope.