제미나이 AI 에이전트서 권한 상승 공격 경로 드러나

| 정민석 기자

구글(Google) 제미나이(Gemini) 기반 개발 자동화에서 낮은 권한의 AI 에이전트가 더 높은 권한의 워크플로를 유도해 깃허브 토큰 노출과 풀리퀘스트 조작으로 이어질 수 있다는 공격 경로가 공개됐다.

필러시큐리티(Pillar Security)는 3일 공개한 연구에서 구글의 오픈소스 에이전트 개발 도구와 제미나이 CLI 관련 깃허브(GitHub) 워크플로에서 ‘에이전트 간 권한 상승’ 공격 경로를 확인했다고 밝혔다. 공격은 공개 이슈나 풀리퀘스트에 숨겨진 프롬프트 인젝션에서 시작한다. AI 에이전트가 이를 일반 작업 문맥으로 받아들이면 공격자가 넣은 명령이 실행 흐름에 섞일 수 있다.

문제의 핵심은 AI 모델의 답변 품질보다 개발 인프라의 권한 설계에 있다. 필러시큐리티는 앞선 ‘TrustIssues’ 연구에서 공개 깃허브 이슈 하나로 제미나이 기반 이슈 분류 워크플로가 내부 시크릿과 깃허브 토큰을 외부에 노출할 수 있는 경로를 제시했다. 연구 당시 제미나이 CLI 저장소는 깃허브 스타 10만1000개 이상을 보유했으며, 같은 취약한 패턴은 최소 8개 구글 저장소에서 발견됐다.

깃허브 보안 권고 GHSA-wpqr-6v78-jr5g는 4월 24일 제미나이 CLI와 run-gemini-cli 깃허브 액션의 취약점을 ‘Critical’로 분류하고 CVSS 점수 10.0을 부여했다. 영향을 받는 버전은 @google/gemini-cli 0.39.1 미만과 0.40.0-preview.2, run-gemini-cli 0.1.22 미만이다. 패치 버전은 @google/gemini-cli 0.39.1·0.40.0-preview.3과 run-gemini-cli 0.1.22다.

권고문은 헤드리스 환경의 폴더 신뢰 처리와 ‘--yolo’ 모드의 도구 허용 목록 우회를 문제로 지목했다. 이전 버전에서는 CI 환경의 워크스페이스 폴더가 자동으로 신뢰돼 악성 설정이 원격 코드 실행으로 이어질 수 있었다. ‘--yolo’ 모드에서는 세밀하게 설정한 도구 허용 목록이 무시될 수 있었지만, 패치 이후에는 해당 모드에서도 허용 목록을 평가하도록 바뀌었다.

현재 google-gemini/gemini-cli의 자동 이슈 분류 워크플로는 actions/checkout 단계에 persist-credentials: false를 설정하고 제미나이 실행 단계의 GITHUB_TOKEN을 빈 값으로 둔다. 이슈 댓글 트리거도 OWNER·MEMBER·COLLABORATOR 등 작성자 관계 조건으로 제한한다. 이는 토큰을 디스크에 남기지 않고 외부 사용자가 고권한 작업을 호출하지 못하도록 통제하는 조치다.

이번 연구는 크립토 업계의 개발 공급망 보안과도 맞닿아 있다. 거래소와 지갑, 브리지, 인덱서, 스마트컨트랙트 도구는 깃허브 액션과 CI/CD 파이프라인을 폭넓게 사용한다. AI 코드 리뷰나 이슈 분류 에이전트가 배포 토큰·클라우드 키·패키지 게시 권한에 접근하면 프롬프트 인젝션이 코드 변조와 배포 경로 오염으로 번질 수 있다. 본지는 앞서 AI 에이전트의 실제 인프라 접근 사례를 통해 권한 범위와 외부 접속 경로 통제의 필요성을 전했다.

클라우드보안연합(Cloud Security Alliance·CSA) AI Safety Initiative도 4월 연구 노트에서 ‘Comment and Control’ 공격이 앤트로픽 Claude Code Security Review와 구글 Gemini CLI Action, 마이크로소프트 GitHub Copilot Agent를 겨냥할 수 있었다고 밝혔다. CSA는 풀리퀘스트 제목과 이슈 본문·댓글처럼 외부 기여자가 작성할 수 있는 데이터가 AI 에이전트의 실행 문맥에 들어가는 구조를 핵심 위험으로 봤다. 다만 실제 공격자가 이번 연구의 공격 경로를 악용해 크립토 프로젝트를 침해한 사례는 확인되지 않았다.

방어책은 외부 입력을 읽는 AI 에이전트와 고권한 실행 환경을 분리하는 데 모인다. 외부 사용자가 만든 이슈·풀리퀘스트·댓글을 처리하는 에이전트에는 쓰기 권한과 시크릿 접근권을 부여하지 않고, actions/checkout에는 persist-credentials: false를 적용해야 한다. GITHUB_TOKEN과 API 키, 클라우드 자격증명도 에이전트 실행 환경에서 분리할 필요가 있다.

검증 출처: Pillar Security 연구, GitHub Advisory, CSA 연구 노트

본 기사는 시장 데이터 및 차트 분석을 바탕으로 작성되었으며, 특정 종목에 대한 투자 권유가 아닙니다.

많이 본 기사

지금 꼭 알아야 할 리포트