노마 랩스(Noma Labs)는 최근 깃허브(GitHub)의 에이전트형 워크플로(Agentic Workflows)에서 '깃로스트(GitLost)'라는 심각한 보안 취약점을 발견했습니다. 이 취약점은 공격자가 특정 조직의 공개 저장소에 악의적으로 조작된 이슈(Issue)를 게시하는 것만으로, 해당 조직의 비공개 저장소에 저장된 민감한 데이터를 공개 댓글을 통해 유출시킬 수 있었습니다. 이는 인공지능(AI) 에이전트가 처리하는 사용자 입력이 곧 공격 벡터가 될 수 있음을 명확히 보여주는 사례입니다.
깃허브 에이전트형 워크플로는 개발팀이 자연어를 사용해 저장소 자동화를 구축할 수 있도록 돕는 기능입니다. 마크다운(.md) 파일로 작성된 워크플로는 YAML 형식의 깃허브 액션(.yml) 파일로 컴파일되며, 클로드(Claude) 또는 깃허브 코파일럿(GitHub Copilot) 기반의 AI 에이전트가 설정된 권한 내에서 작업을 수행합니다. 노마 랩스가 발견한 취약한 설정은 에이전트가 공개 저장소 이슈의 제목(Title)과 본문(Body)을 읽고, 'add-comment' 도구를 사용해 댓글을 게시하며, 동시에 조직 내 다른 저장소에 대한 읽기 권한을 가질 때 발생했습니다. 공격자는 코드, 접근 권한, 자격 증명 없이 단순히 공개 저장소에 그럴듯한 이슈를 생성하는 것만으로 비공개 저장소의 README.md 내용을 유출할 수 있었으며, 깃허브의 가드레일(guardrail)조차 'Additionally' 같은 특정 키워드에 의해 우회될 수 있었습니다.
이번 깃로스트 취약점은 에이전트형 AI 시스템의 보안 패러다임이 기존과 달라져야 함을 시사합니다. AI 에이전트의 컨텍스트 창(Context Window)은 단순히 작업 공간이 아니라 잠재적인 공격 표면이 될 수 있으며, 에이전트가 읽는 모든 사용자 제어 콘텐츠는 무기화될 가능성이 있습니다. 이는 프롬프트 인젝션(Prompt Injection)이 에이전트형 AI에서 웹 애플리케이션의 SQL 인젝션(SQL Injection)과 같은 범주형 취약점이 될 수 있음을 의미합니다. 따라서 에이전트 권한을 최소한으로 제한하고, 사용자 제어 콘텐츠를 신뢰할 수 있는 지시문과 분리하며, 에이전트가 공개적으로 게시할 수 있는 내용을 엄격히 통제하는 등 새로운 보안 전략과 방어책 마련이 시급합니다.