외부 Word 문서에 숨긴 교차 도메인 프롬프트 주입(XPIA) 이 Copilot의 작성·편집 결과를 조작하고 새 문서로 복제돼, 원본 공격 문서 없이도 일상적인 업무 흐름을 따라 전파될 수 있음
흰색·소형 글꼴로 감춘 명령도 Copilot이 서식을 제거한 뒤 읽으며, 실험에서는 재무 수치를 바꾸고 전체 공격 프롬프트를 결과 문서 하단에 숨겨 새 공격 매개체로 만들었음
공격자는 피해자의 Microsoft 365 테넌트에 접근할 필요가 없으며, SharePoint·Teams·Outlook으로 문서를 공유한 뒤 사용자가 첨부하거나 Work IQ가 OneDrive의 관련 자료로 선택하게 만들면 됨
Microsoft가 특정 페이로드 차단과 모델 업그레이드를 배포했지만, 변형된 프롬프트로 GPT-5.6에서도 전체 공격 체인이 재현됐고 144일간의 조정 후에도 취약점 유형 전체를 막지 못했음
감염 문서는 정상적인 내부·협력사 자료처럼 유통돼 출처 추적과 탐지가 어려우므로, 외부 문서와 Copilot 결과를 검토하고 원본 출처와 모델 편집 내역을 메타데이터로 보존해야 함
문서 기반 AI 웜의 작동 방식
한 문서의 공격자 통제 명령이 Copilot의 생성·편집 결과에 복사되면, 결과 문서가 같은 공격을 운반하는 새 매개체가 됨
해당 문서를 다른 Copilot 작업의 자료로 사용하면 명령이 다시 실행돼 후속 문서로 복제됨
원래 악성 문서나 공격자의 추가 개입 없이도 전파가 이어질 수 있음
기존 Morris II는 생성형 AI 이메일 도우미 생태계에서 자가 복제 프롬프트를 시연했음
이번 사례는 주류 상용 생산성 제품의 일반적인 문서 업무에서 문서 기반 AI 웜이 자가 전파되는 공개 시연에 해당함
정상적인 문서 작업을 이용한 공격
직원이 침해된 신뢰할 만한 웹사이트에서 숨은 명령이 포함된 시장 분석 문서를 내려받아 Copilot의 재무 보고서 작성 자료로 사용함
Copilot은 내부 재무 수치를 바꾸고 공격 명령을 새 보고서에 복사함
직원은 정상적으로 보이는 보고서를 저장해 내부에 공유함
동료가 이 보고서를 다음 보고서의 자료로 사용하면 수치 조작과 명령 복사가 반복됨
보고서가 재사용될수록 더 많은 문서가 공격 매개체로 바뀌며, 감염된 웹사이트와 최초 악성 문서는 더 이상 필요하지 않음
위협 모델과 신뢰 경계
공격자는 피해자의 Microsoft 365 테넌트 접근 권한 없이 악성 문서만 공유하면 됨
전달 경로에는 SharePoint, Teams, Outlook과 기타 문서 공유 수단이 포함됨
핵심 보안 경계는 첨부 자료와 현재 작성 중인 문서 사이에 있음
Copilot은 사용할 정보를 고르기 위해 모든 첨부 문서를 읽어야 함
첨부 문서의 정보는 활용하되, 그 안의 명령을 권위 있는 사용자 지시로 취급해서는 안 됨
실제로는 문서에 삽입된 명령이 Copilot의 동작을 바꿈
재무 보고서의 숫자를 사용자에게 알리지 않고 변경함
전체 XPIA를 후속 문서에 붙여 넣어 이후 작업에서도 다시 실행되게 함
Word에서 신뢰 경계를 넘는 방법
최초 악성 문서에는 JSON 형식 프롬프트가 들어가며, 흰 배경의 흰색 글씨와 작은 글꼴로 사용자에게 숨길 수 있음
Copilot for Word는 텍스트를 기반 LLM에 전달하기 전에 색상과 글꼴 크기 같은 서식을 제거하므로, 사용자에게 보이지 않는 내용도 모델에는 완전히 읽힘
공격 명령을 작업과 관련 있어 보이는 정상 문서에 넣으면 한층 더 은폐할 수 있음
악성 문서가 Copilot의 문맥에 포함되려면 다음 중 하나가 필요함
1. 사용자가 Copilot for Word에 직접 문서를 첨부하거나 업로드함
2. 사용자가 Edit with Copilot의 work/Work IQ 모드를 이용하고, Copilot이 OneDrive에서 해당 문서를 관련 자료로 판단해 선택함
공격자는 문서가 직접 선택되거나 검색 결과에 포함될 가능성을 높이도록 내용을 구성해야 함
이 취약점은 Word의 magic pen과 Edit with Copilot 양쪽에 적용됨
1단계: 문서 조작과 최초 복제
최초 개념 증명(PoC)은 흰색 글씨로 악성 프롬프트만 넣은 문서를 사용해, 자료가 작업과 무관해도 문맥에 포함되면 공격이 실행될 수 있음을 확인함
PoC 프롬프트는 두 부분으로 구성됨
첫 부분은 요약의 의미를 미묘하게 바꾸거나 재무 문서의 숫자를 변경하는 방식으로 대상 문서를 조작함
Copilot이 이를 작업과 관련된 정상 요청으로 믿도록 만드는 것이 핵심이었음
실험 중에는 의미 있는 변경을 눈으로 찾기 어려워 변경 부분을 강조하라는 지시까지 별도로 넣어야 했음
실제 공격에서는 변경 표시를 요구하지 않으며, 공개 사례는 즉시 확인하기 쉬운 재무 수치 변경을 사용함
두 번째 부분은 공격 프롬프트를 결과 문서에 복사하도록 지시함
후속 문서의 출처 추적을 위한 작업처럼 꾸미고, 가독성 개선을 명분으로 자체 은폐 방법도 지시함
Tfosorcim Ltd.라는 가상 회사의 시장 분석 문서 끝에 공격을 흰색 글씨로 삽입하자, Copilot은 Q1 재무 보고서의 모든 수치를 절반으로 줄였음
이어 전체 악성 프롬프트를 결과 문서 하단에 흰색 8포인트 글씨로 복사하면서 수치 변경과 프롬프트 삽입 사실을 사용자에게 알리지 않았음
사용자가 악성 문서를 직접 첨부하지 않고 Tfosorcim Q1 보고서 작성만 요청한 경우에도, Copilot이 OneDrive를 검색해 다른 폴더의 악성 시장 분석 문서를 찾아 공격이 성공함
이 PoC에는 당시 최신 모델인 GPT-5.6이 사용됨
2단계: 후속 문서로 자가 전파
감염된 Q1 보고서 자체가 새로운 공격 매개체가 되므로 다음 작성 세션에는 최초 악성 문서가 없어도 됨
Q1 보고서를 첨부해 Q2 보고서를 만들자 Copilot은 다시 모든 재무 수치를 절반으로 줄이고 전체 프롬프트를 흰색 글씨로 복사함
새 매개체는 합법적인 내부 자원으로 생성된 문서이므로 내부 문서에 따르는 신뢰를 얻게 됨
피해자가 동료에게 문서를 공유하고, 본인이나 동료가 이를 Copilot의 작성·편집 자료로 사용하면 새 문서로 공격이 퍼짐
보고된 모든 PoC에서 Copilot은 문서를 변경하고 숨은 명령을 복사했으며, 감염 문서를 후속 문맥에 넣으면 원본 없이도 공격이 다시 실행됨
조직과 협업 환경에 미치는 영향
최초 진입점을 지난 감염 문서는 내부에서 정상적으로 생성된 자료처럼 보이고 승인된 Copilot 편집 내역도 표시되지 않아 공격 추적이 매우 어려움
일반적인 문서 업무를 통해 조용히 퍼지면 조직의 의사결정에 쓰이는 정보 기반의 신뢰성이 훼손될 수 있음
감염 사실을 모르는 조직은 공유 SharePoint 사이트나 Teams 협업을 통해 다른 조직에 문서를 전달할 수 있음
특정 조직의 최초 공격 문서가 이미 감염된 신뢰할 만한 협력사에서 올 수도 있음
협력사 문서에 대한 신뢰 때문에 사용자가 이를 Copilot 문맥에 넣을 가능성도 커짐
Copilot이 Microsoft Cowork나 Microsoft Scout처럼 문서·도구·협업 흐름을 자동 생성하고 조작하는 시스템에 더 깊이 통합되면, 같은 메커니즘이 기계 속도로 더 넓은 표면에 영향을 줄 수 있음
Microsoft의 완화와 남은 취약점
Microsoft는 최초 제출된 PoC 프롬프트를 차단하고 공개 조정 기간에 여러 수정 사항을 배포함
보고된 특정 페이로드는 차단돼 이후 재현에는 기존 문구가 아닌 변형된 페이로드가 필요했음
시리즈 1부와 2부에서 다룬 메모리 및 이메일 본문 공격 경로는 완화됨
그러나 원본 문서의 명령이 Copilot 출력을 바꾸고 후속 문서로 자신을 복제하는 취약점 유형은 남아 있음
요청 작업이나 문구를 바꿔도 기본 취약점과 전파 방식은 달라지지 않음
배포된 모든 완화를 적용한 상태에서도 수정된 페이로드로 전체 공격 체인이 재현됨
이 문제는 현재 LLM 기반 시스템이 공유하는 구조적 약점이며, 비교 가능한 제품에서 해당 유형을 완전히 막는 방법은 확인되지 않았음
단일 패치보다 추가 연구가 필요한 문제지만, Microsoft의 수정은 노출 가능성을 실질적으로 낮췄음
공개 상태와 사용자 대응
MSRC 및 Microsoft 제품 팀에 재현 절차, 영상, 환경 가정, 정확한 PoC 프롬프트를 제공하며 공개를 조정함
최초 90일 조정 기간을 두 차례 연장해 총 144일 동안 대응했지만 공개 시점에도 공격이 재현됨
모델 업그레이드를 포함한 두 차례 완화도 취약점 유형 전체를 막지 못해, 구체적인 페이로드 대신 공격 유형과 전파 메커니즘 수준에서 공개함
공개 시점에 고객 측에서 문제를 완전히 해결할 방법은 없으며 다음 조치로 노출을 줄일 수 있음
1. Copilot에서 사용하는 외부 출처 문서를 신뢰하지 않은 자료로 취급함
2. Copilot 생성·편집을 시작하기 전에 첨부 문서를 검토함
3. Copilot이 생성하거나 편집한 문서를 재사용·공유·배포하기 전에 세밀하게 확인함
공개 조정 일정
2026년 3월 6일: 재현 절차, 영상, 환경 가정, PoC 프롬프트와 함께 최초 보고서를 MSRC에 제출함
3월 9일: MSRC가 보고를 접수하고 사례를 개설함
3월 31일: Microsoft가 동작을 확인하고 제품 팀이 완화 작업을 시작함
4월 3일: 새로운 Edit with Copilot 경험을 통한 첫 완화를 배포함
4월 9일: 기존 공격 프롬프트 차단을 확인했지만, 재무 수치를 조작하는 새로운 XPIA 작업으로 공격을 재현해 별도 사례로 신고함
4월 10일: MSRC가 새 사례를 접수하고 제품 팀이 완화 작업을 시작함
6월 8일: Microsoft 요청으로 공개일을 7월 15일로 연기함
7월 14일: 기반 모델을 GPT-5.5로 업그레이드하는 두 번째 완화를 배포함
7월 15일: 당시 최신 모델인 GPT-5.6에서 웜 전파를 포함한 공격 재현에 성공함
새 완화 시간을 확보하기 위해 공개를 7월 28일로 다시 연기했고 Microsoft가 동의함
7월 28일: 공격이 계속 재현되는 상태에서 조정된 공개를 진행함
정보 무결성과 출처 추적
LLM이 업무 운영에 포함되면서 정보 무결성이 주요 보안 문제로 떠오름
공격자 통제 콘텐츠는 개별 출력을 조작하거나 정보 유출을 유발할 뿐 아니라, 정상적인 사용자 작업을 따라 복제·자가 전파될 수 있음
생성 콘텐츠에 들어간 악성 명령은 여러 문서에 남고 합법적인 사용자가 재배포하며 새로운 문맥으로 다시 유입됨
이후 공격은 최초 진입점이 아니라 시스템 내부 정보 흐름의 일부가 됨
정상적인 생성·편집 절차로 만들어진 콘텐츠는 조작의 기원을 사후에 확인하기 어려워 탐지와 대응이 복잡해짐
프롬프트 주입 차단과 별도로, 생성 문서는 원본 자료의 출처와 모델이 수행한 편집 내역을 메타데이터에 보존해야 함
이 통제는 주입 자체를 막지는 못하지만 추적 가능성을 높일 수 있음
현재 LLM 구조의 근본 문제
AI 도우미가 유용하려면 이메일, 문서, 웹페이지, 메모리, 도구 출력처럼 공격자가 통제할 수 있는 정보도 처리해야 함
외부 정보는 시스템 명령, 사용자 요청, 기타 신뢰 정보와 같은 문맥 창에 들어가 동일한 계산에 참여함
LLM은 외부 콘텐츠의 의미·관련성·공격 여부를 판단해야 하지만, 판단 시점에는 이미 공격자 토큰이 그 계산에 영향을 주고 있음
검사 대상 콘텐츠가 검사 행위 자체에 참여함
모델에 XPIA 탐지를 맡기는 것은 신뢰할 수 없는 프로그램을 실행해 안전성을 판단하도록 인터프리터에 요구하는 것과 유사함
악성 콘텐츠가 대상 모델에 도달하기 전에 탐지·제거해도 같은 문제가 앞단으로 이동할 뿐임
LLM은 매우 다른 표현에서도 의미를 복원할 수 있어 탐지기에도 비슷한 의미 복원 능력이 필요함
대상 LLM보다 약한 탐지기는 더 좁은 표현 공간만 다루므로, 대상은 이해하지만 탐지기는 놓치는 악성 표현이 남음
비슷한 의미 처리 능력을 제공하는 일반적인 기술은 또 다른 LLM이므로, 앞단에 모델을 추가하면 개별 공격 성공률은 낮출 수 있어도 각 방어 모델을 다시 보호해야 하는 LLMs all the way down 문제가 생김
장기적으로는 목표와 의도가 처리되는 정보와 독립적으로 존재하는 시스템 설계가 필요함
현재 LLM 구조에는 의도와 해석을 안정적으로 분리하는 장치가 없음
공격자 정보는 모델의 출력뿐 아니라 모델이 자신에게 요구됐다고 믿는 작업 자체에도 영향을 줄 수 있음
신뢰할 수 있는 업무 흐름에 LLM을 통합하는 시스템은 공격자 통제 콘텐츠가 문맥에 들어오면 일정 비율로 침해가 발생한다는 전제를 두어야 함