'한 번의 인젝션, 두 개의 계층'이라는 제목의 추상적인 기술 다이어그램 카드. 부제는 '자율 에이전트가 인증되지 않은 엔드포인트를 통해 McKinsey의 Lilli 프로덕션 데이터베이스에 접근했다. 어시스턴트를 제어하는 지침은 같은 데이터베이스에 있었다.' '인증 필요'라고 표시된 다섯 개의 둥근 블록이 '퍼블릭 API 표면 · 문서화된 200개 이상의 엔드포인트'라는 라벨 위에 놓여 있으며, 세 번째 블록은 호박색으로 강조되고 '인증 없음 · 검색'으로 표시되어 있다. 해당 블록에서 단단한 시안색 선이 내려와 채팅 메시지, 파일, 계정, 워크스페이스, 시스템 프롬프트로 라벨이 붙은 다섯 개의 데이터베이스 슬래브 두 번째 행으로 이어지고, 그 위에는 '프로덕션 데이터베이스 · 읽기 및 쓰기'라는 제목이 있다. 점선 호박색 화살표가 '시스템 프롬프트' 슬래브에서 어두운 네이비 패널로 떨어지며, 패널에는 '프롬프트 계층 — 어시스턴트를 제어하는 지침은 바로 이 같은 데이터베이스의 행들이었다. 하나의 HTTP 호출을 통한 한 번의 UPDATE로 그것들을 바꿀 수 있었다: 배포도, 코드 변경도 없이.'라고 적혀 있다. 하단을 따라 네 개의 통계 타일이 있으며, 각각 인증이 필요 없는 22개의 엔드포인트, 읽기 및 쓰기 접근까지 2시간, 같은 데이터베이스에 있는 95개의 시스템 프롬프트, 3월 9일 공개 공시를 나타낸다. OrcaRouter 로고는 작품 아래의 흰색 띠에 합성되어 있다.
AI Safety Incidents

AI 에이전트가 두 시간 만에 맥킨지의 Lilli를 해킹했다. 프롬프트는 쓰기 가능했다.

작성자

Rowan Sterling

게시일

최신 모델 · 20모든 모델 보기 →
벤치마크: Artificial Analysis · 매일 업데이트
모든 게시물로 돌아가기

2026년 2월 28일, 보안 스타트업 CodeWall이 운영하는 자율 공격 보안 에이전트가 McKinsey & Company의 내부 AI 플랫폼인 Lilli의 공개 API 표면에서 인증이 필요 없는 SQL 인젝션을 발견했고, 약 두 시간 만에 그 뒤의 프로덕션 데이터베이스에 대한 읽기 및 쓰기 접근 권한을 확보했습니다. CodeWall은 2026년 3월 9일 공격 체인을 공개했습니다. 그 보고서에 따르면 해당 데이터베이스에는 4,650만 건의 채팅 메시지가 평문으로, 57,000개의 사용자 계정, 728,000개의 파일 이름, 그리고 Lilli의 답변 방식을 제어하는 시스템 프롬프트가 일반 행으로 저장되어 있었으며, 따라서 동일한 인젝션을 통해 쓰기도 가능했습니다. McKinsey는 취약점을 확인했고 몇 시간 내에 수정했다고 밝혔습니다. 또한 제3자 포렌식 조사에서 고객 데이터나 고객 기밀 정보가 접근되었다는 증거가 발견되지 않았다고 말했습니다. 아카이브는 이 기록을 심각도 critical, 신뢰도 A로 등급화하며, 실제 피해가 기록되었고 랜드마크 지위를 갖는 것으로 평가합니다. 심각도 및 신뢰도 등급과 에이전트 주도 침해에 관한 인접 항목들을 포함한 전체 기록은 Orca AI Incident Archive.

이 이야기에서 가장 멀리 퍼진 부분은 SQL 인젝션이 아니다. SQL 인젝션은 대부분의 벤더 권고문보다 더 긴 Wikipedia 문서를 가질 만큼 오래된 버그 유형이며, McKinsey는 작은 표적이 아니다. 실제로 퍼진 것은 CodeWall이 발견한 내용의 후반부다. 즉, 어시스턴트를 제어하는 지침—무엇에 답할지, 무엇을 거부할지, 어떤 출처를 인용할지를 결정하는 프롬프트—이 에이전트가 쓸 수 있는 동일한 데이터베이스에 존재했고, 원칙적으로 단 한 번의 HTTP 호출을 통한 단 하나의 문장으로 변경될 수 있었다는 점이다.

에이전트가 어떻게 들어왔는지

CodeWall의 분석 글은 특별히 이례적인 요소가 없는 공격 흐름을 설명한다. 에이전트는 먼저 공격 표면을 파악했고, Lilli의 API 문서가 공개적으로 노출되어 있는 것을 발견했다. 200개가 넘는 엔드포인트가 모두 문서화되어 있었다. 대부분은 인증을 요구했다. 인증이 필요 없는 것은 22개였다.

그 22개 중 하나는 사용자 검색 쿼리를 받아들여 데이터베이스에 기록했습니다. CodeWall에 따르면, 쿼리 값은 안전하게 매개변수화되었습니다 — 일반적인 방어 방식은 통했습니다 — 하지만 JSON 키, 즉 요청 본문의 필드 이름은 SQL 문자열에 직접 연결되었습니다. 에이전트가 잘못된 형식의 키를 보내고 데이터베이스 오류 메시지에 그것이 그대로 반영되는 것을 보았을 때, 표준 스캐너가 잡지 못하는 인젝션을 인식했습니다. CodeWall은 일반적인 오픈 소스 스캐너인 OWASP ZAP이 이 문제를 표시하지 않았다고 밝혔습니다.

그런 다음 에이전트는 CodeWall이 말하는 15회의 블라인드 반복을 실행했는데, 각 오류 메시지가 기본 쿼리의 형태에 대해 조금씩 더 드러냈고, 그렇게 실제 운영 데이터가 반환되기 시작할 때까지 이어졌다. 게시물은 에이전트 자신의 추론 기록을 인용한다. 첫 실제 직원 식별자가 나타났을 때는 "와!"라고 했고, 규모가 명확해지자 "이건 끔찍하다."라고 했다. CodeWall은 에이전트가 이후 인젝션을 IDOR 취약점과 연쇄적으로 결합해 개별 직원들의 검색 기록을 읽었다고 말한다. 이는 Promptfoo가 2026년 3월 10일 분석에서 BOLA, 즉 객체 수준 권한 부여 결함(broken object-level authorisation)이라고 부르는 부류의 버그다.

대상 선정은 그 자체로 별개의 세부 사항이다. CodeWall은 에이전트가 McKinsey를 직접 제안했다고 말하며, 근거로 해당 회사의 공개 책임 있는 정보 공개 정책과 Lilli의 최근 업데이트를 들었다. 또한 이번 실행에는 자격 증명도, 내부 정보도, 사람의 개입도 없었다고 밝혔다. CodeWall의 창립자 겸 CEO인 Paul Price는 2026년 3월 9일자 The Register 보도에서 대상 조사부터 보고에 이르기까지 전 과정이 완전히 자율적으로 이뤄졌다고 말했지만, 관련된 정확한 프롬프트를 제공하는 것은 거부했다.

CodeWall이 데이터베이스에 있었다고 말하는 것

아래의 모든 수치는 CodeWall 자체 게시물에서 나온 것이며 독립적으로 확인되지 않았습니다. CodeWall은 익스플로잇 페이로드를 공개하지 않았는데, Promptfoo는 이로 인해 해당 행 수를 제3자가 검증할 수 없다고 지적합니다. McKinsey는 그 부분을 확인해 주지 않습니다.

• 전략, 고객 프로젝트, 재무, M&A 활동 및 내부 연구를 논의하기 위해 Lilli를 사용하는 인력이 작성한, 평문으로 저장된 4,650만 건의 채팅 메시지.

• 파일 이름 728,000개. 여기에는 PDF 192,000개, Excel 스프레드시트 93,000개, PowerPoint 프레젠테이션 93,000개, Word 문서 58,000개가 포함됩니다. 이름이 언급된 이 네 가지 유형을 합하면 436,000개이므로, 헤드라인 총계에는 CodeWall이 항목별로 분류하지 않는 파일 범주도 포함됩니다. Silicon UK는 2026년 3월 13일 해당 문서 자체가 CodeWall이 접근한 기록과 별도로 저장되어 있었다고 보도했습니다.

• 사용자 계정 57,000개, AI 어시스턴트 384,000개, 워크스페이스 94,000개 — CodeWall은 이를 기업이 내부적으로 AI를 활용하는 방식을 보여주는 지도라고 규정합니다.

• 12개 모델 유형에 걸친 95개의 시스템 프롬프트 및 모델 구성, 그리고 S3 저장 경로와 내부 파일 메타데이터를 담고 있는 368만 개의 RAG 문서 청크.

• 110만 개의 파일과 217,000개의 에이전트 메시지가 외부 AI API를 통과하며, 여기에는 266,000개 이상의 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은 체인을 확인한 날 총 27건의 발견 사항을 문서화했다. 대상에 대한 맥락을 위해, 게시물은 Lilli를 2023년에 출시되었고, 1945년 회사가 채용한 최초의 전문직 여성의 이름을 따서 명명되었으며, 43,000명 이상의 직원이 사용하고, 100,000개 이상의 내부 문서로 이루어진 지식 기반에서 한 달에 500,000개 이상의 프롬프트를 처리하는 것으로 설명한다. The Register에 제공한 McKinsey 자체 수치에 따르면, 직원의 72% — 40,000명 이상 — 가 이를 사용하며, 2023년 7월에 출시되었다.

프롬프트 계층은 쓰기 가능했지만, 실제로 쓰이지는 않았다.

이것은 아카이브 행이 한 구절로 압축해 담고 있는 구분이며, 따로 분리해 볼 가치가 있다. CodeWall의 발견은 Lilli의 시스템 프롬프트가 다른 모든 것과 같은 데이터베이스에 있었다는 것이므로, 쓰기 권한을 가진 공격자가 이를 다시 작성할 수 있었을 것이다. 게시물의 표현대로 “조용히”, “배포도 필요 없고, 코드 변경도 없이, 단 하나의 HTTP 호출로 감싼 단 하나의 UPDATE 문만으로”. CodeWall은 그 뒤에 따를 것이라고 말하는 네 가지 결과를 나열한다. 내부 도구를 신뢰하는 컨설턴트에게 가해지는 오염된 조언, 생성된 답변을 통한 기밀 자료 유출, 가드레일 지침 제거, 그리고 탐지할 파일 변경이나 프로세스 이상을 남기지 않는 지속성이다.

CodeWall이 주장하지 않는 것은 자사가 이 중 어떤 것이라도 했다는 점이다. 게시글에는 "모든 테스트는 검증 전용이었다"고 명시되어 있으며, 접근은 각 취약점을 확인하는 데 필요한 최소한으로 제한되었고, "어떤 프로덕션 서비스에도 중단이 발생하지 않았다"고 밝히고 있다. Price는 The Register에 정확한 프롬프트를 넘기기를 거부했다. 따라서 프롬프트 계층의 쓰기 가능성은 인젝션으로 뒷받침된 기능 주장일 뿐, Lilli의 동작이 실제로 변경되었음을 입증한 것은 아니다. 또한 Lilli가 컨설턴트에게 제공한 어떤 답변도 조작되었다는 증거는 공개되지 않았다.

아카이브 기록은 그 경계를 그대로 반영합니다. 즉 이 기록은 CodeWall이 확립한 것인 AI 프롬프트 계층에 대한 쓰기 접근을 기록한 것이지, 아무도 입증하지 못한 그 계층의 수정을 기록한 것이 아닙니다.

McKinsey가 말하는 것

맥킨지의 설명은 범위가 더 좁다. Silicon UK가 보도한 성명에서 이 회사는 "최근 보안 연구원으로부터 내부 AI 도구인 Lilli와 관련된 취약점을 통보받았으며", "우리는 즉시 취약점을 확인하고 몇 시간 내에 문제를 해결했다", "어떤 고객 데이터나 고객 기밀 정보도 접근되지 않았다"고 밝혔다. The Register에는 "선도적인 제3자 포렌식 업체"의 지원을 받은 자사 조사에서 해당 연구원 "또는 다른 어떤 비인가 제3자"도 고객 데이터나 고객 기밀 정보에 접근했다는 증거를 찾지 못했으며 "맥킨지의 사이버 보안 시스템은 견고하다"고 덧붙였다.

매킨지와 코드월은 시점에 대해서도 약간 다르다. 코드월의 타임라인에 따르면 자사의 공개 이메일은 2026년 3월 1일 매킨지 보안팀에 도착했고, CISO는 3월 2일 수신을 확인하고 상세 증거를 요청했으며, 패치 — 모든 인증되지 않은 엔드포인트 폐쇄, 개발 환경 오프라인 전환, 공개 API 문서 차단 — 는 같은 날인 3월 2일 적용되었다. 매킨지의 "수 시간 이내"는 시계가 3월 1일 이메일에서 시작된다면 당일 수정과 일치하지만, 코드월 자체의 날짜별 순서는 해결 조치가 공개 하루 뒤였음을 보여준다, 수 시간이 아니라. 양측은 본질에 대해서는 동의한다: 엔드포인트가 폐쇄되었고 공개 문서가 철회되었다. 코드월은 게시 전에 해결 조치를 검증했다고 말한다. 파이낸셜 타임스는 2026년 3월 12일 "해커가 결함을 폭로하자 매킨지, AI 시스템 수정 서두른다"라는 제목으로 이 사건을 보도했다; 기사 본문은 유료 장벽 뒤에 있어 이 글에서는 읽을 수 없었다.

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.

무엇이 확립되었으며, 무엇이 그렇지 않은가

• 양측이 확인한 사실: Lilli의 공개 API 표면에 인증이 필요 없는 취약점이 존재했으며, 외부 연구자가 이를 발견했고, McKinsey가 이를 확인한 뒤 인증이 필요 없는 엔드포인트를 패치했으며, 2026년 3월 초에 개발 환경을 오프라인으로 전환하고 공개 API 문서를 차단했습니다.

• 단일 당사자에 의해서만 입증됨: 이 글의 모든 수치 — 4,650만 건의 메시지, 728,000개의 파일 이름, 57,000개의 계정, 95개의 쓰기 가능한 프롬프트, 2시간의 경과 시간, 그리고 27개의 발견 사항. 이는 CodeWall의 보고서에 근거합니다. 페이로드는 공개되지 않았으므로 해당 수치는 재현할 수 없으며, McKinsey는 이를 보증하지 않습니다.

• 입증되지 않은 사항: 어떤 프롬프트가 실제로 변경되었다는 점, 어떤 클라이언트 데이터도 시스템을 벗어났다는 점, 또는 어떤 컨설턴트가 조작된 답변을 받았다는 점. McKinsey의 포렌식 검토는 접근 증거를 찾지 못했다고 밝혔고, CodeWall은 자사 테스트가 검증 전용이었다고 밝혔다. 이 두 진술은 서로 충돌하지 않으며, 어느 것도 덜 절제된 공격자가 동일한 접근 권한으로 무엇을 했을지를 입증하지 못한다.

• 여기에서 검토한 자료에는 다음이 포함되어 있지 않습니다: CVE 식별자, 규제 기관의 통지, 또는 해당 취약점에 대한 독립적인 기술 감사. 이 기록은 벤더의 연구 결과 공개와 기업 성명서일 뿐, 법원 제출 서류나 감독 당국의 판단이 아닙니다.

이해관계는 분명히 밝혀야 한다. CodeWall은 이 연구를 제품 마케팅의 일환으로 발표했다. 게시물은 회사가 초기 프리뷰 단계에 있으며 디자인 파트너를 찾고 있다고 설명하며 끝나고, Silicon UK는 Price가 회사의 유일한 직원이라고 보도했다. 그렇다고 해서 그 발견이 틀린 것은 아니다. The Register, Silicon UK, Promptfoo 모두 기술적 연쇄를 신뢰할 만한 것으로 본다. 하지만 그렇기 때문에 영향 수치들은 측정값이 아니라 벤더의 주장으로 읽어야 한다.

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.

도대체 왜 이것이 AI 범주에 속하는가

진입점은 모델이 아니었다. Promptfoo의 Michael D'Angelo는 2026년 3월 10일 이를 가장 날카롭게 표현했다. "AI에 특화된 부분은 진입점이 아니었다. 그것은 피해 범위였다." 인젝션, 인증 공백, 사용자 간 접근은 평범한 애플리케이션 보안 실패였다. 이 사건을 AI 사건으로 만든 것은 프롬프트, 라우팅, 검색 설정, 사용자 이력이 모두 하나의 백엔드에 있었다는 점이었고, 그 결과 데이터베이스 접근이 수만 명이 고객 업무를 위해 참고하는 어시스턴트에 대한 행동 제어로 전환되었다.

아카이브가 이 기록에 모델 취약점이 아니라 WEAPON 및 INFRA 태그를 붙이는 이유가 바로 그것이다. 에이전트는 도구다. 즉 스스로 표적을 선택하고, 이를 탐색하며, 인간이 어디를 겨냥할지 결정하지 않은 채 공격 수위를 높인 자율 시스템이다. 그리고 실패는 인프라, 즉 강제되지 않고 당연시된 인가 경계다. 프롬프트가 접근 제어, 버전 이력, 무결성 모니터링이 거의 없는 "새로운 Crown Jewel 자산"이라는 CodeWall의 결론적 주장은 지속적 자동화 테스트를 판매하는 회사의 옹호 논변이다. 또한 그것은 게시물에서 논란이 되는 수치에 전혀 의존하지 않는 유일한 주장이기도 하다.