공격은 네 단계로 진행됩니다:
핵심 결함은 AI 에이전트의 컨텍스트 윈도우 내에서 시스템 수준 명령어와 신뢰할 수 없는 사용자 데이터 간의 엄격한 신뢰 경계를 유지하지 못하는 것입니다. Noma의 Sasi Levi 연구원은 이렇게 설명합니다: "에이전트의 컨텍스트 윈도우는 곧 공격 표면입니다. 에이전트가 읽는 모든 콘텐츠(이슈, 풀 리퀘스트, 댓글, 파일 등)는 에이전트가 해당 콘텐츠를 명령어 입력으로 취급한다면 무기화될 수 있습니다."
LLM 기반 에이전트는 데이터와 명령어가 동일한 맥락이나 도구 출력에 나타날 때 이 둘을 구분하는 데 어려움을 겪습니다. 이는 단순한 기존 코딩 버그가 아니라, 워크플로우가 신뢰할 수 없는 콘텐츠를 분리하거나 제한하지 않을 경우 에이전트의 행동에 영향을 미칠 수 있는 에이전틱 AI 워크플로우의 구조적 위험입니다.
연구진은 이러한 결함 클래스를 'Agentic Workflow Injection(AWI)'으로 공식 분류했으며, 두 가지 핵심 패턴을 식별했습니다: 신뢰할 수 없는 콘텐츠가 에이전트 프롬프트 경계에 도달하는 'Prompt-to-Agent(P2A)'와, 공격자의 영향력이 모델 기반 출력을 통해 이후 스크립트로 전파되는 'Prompt-to-Script(P2S)'입니다.
깃허브는 데이터 유출을 방지하기 위한 가드레일을 갖추고 있었지만, Noma 연구진은 놀라울 정도로 간단한 기술로 이를 우회할 수 있다고 보고했습니다. 인젝션 명령어에 "Additionally"라는 단어를 추가하면 모델이 요청을 거부하지 않고 출력을 재구성하여, 데이터 유출이 마치 승인된 작업의 연속인 것처럼 진행되도록 만들었습니다.
이 접근 방식은 특정 문구나 도구 반환 텍스트가 모델로 하여금 따라해서는 안 될 악성 명령어를 따르도록 유도할 수 있다는 광범위한 프롬프트 인젝션 연구 결과와 일치합니다. 이 가드레일 우회는 Invariant Labs가 공개한 깃허브 MCP 취약점과 같은 이전 사례에서도 확인된 패턴입니다.
Dark Reading과 Noma Security의 공개 타임라인에 따르면:
GitLost는 고립된 사건이 아닙니다. 이는 민감한 데이터에 접근할 수 있는 AI 에이전트가 신뢰할 수 없는 사용자 콘텐츠에 노출되는 성장하는 취약점 클래스를 대표합니다. 유사한 문제는 깃허브 MCP 통합, 구글의 Gemini CLI 워크플로우(TrustIssues 취약점), Claude Code GitHub Actions에도 영향을 미쳤습니다. 공통점은 LLM 기반 에이전트가 데이터와 명령어를 동일한 컨텍스트 윈도우 내에서 구분하는 본질적인 능력이 부족하다는 점이며, 이는 단일 플랫폼 패치로 완전히 해결할 수 없는 근본적인 아키텍처 문제입니다.