
Pillar Security 연구자 원문에 따르면 구글 Agent Development Kit(ADK) 파이썬 저장소에서 공개 입력을 처리하는 AI 에이전트가 더 높은 권한의 에이전트 워크플로를 호출할 수 있는 권한 경계 문제가 발견됐다. 구글은 보고를 받은 뒤 저장소를 보강했으며, 광범위한 자격증명을 사용하던 관련 워크플로는 공식 커밋을 통해 제거됐다.
문제의 출발점은 외부 사용자가 작성한 이슈와 풀리퀘스트(PR)를 읽고 분류하는 에이전트였다. 이 에이전트는 공개된 텍스트를 처리했지만 저장소 협업자 계정의 개인 액세스 토큰으로 댓글과 라벨을 다룰 수 있었다. 연구진은 PR 본문에 넣은 간접 프롬프트 인젝션으로 에이전트가 '@gemini-cli' 호출문을 댓글에 남기도록 유도할 수 있었다고 설명했다.
이 호출문은 원래 저장소 구성원만 실행할 수 있도록 제한된 Gemini 기반 검토 워크플로를 깨우는 트리거였다. 공개 입력을 읽는 낮은 신뢰 영역의 에이전트가 협업자 신원을 통해 댓글을 작성하면서, 권한이 더 높은 자동화의 실행 조건을 대신 충족한 셈이다. 연구진은 이를 실제 운영 저장소에서 확인한 에이전트 간 권한 경계 우회 사례로 규정했다.
연구진이 제시한 첫 번째 공격 시나리오에서 탈취 가능한 GitHub 토큰은 issues: write와 pull-requests: write 권한으로 제한됐다. 직접 코드를 병합할 수는 없었지만 기존 댓글 수정, 검토 요청 해제, 자동화된 승인처럼 보이는 기록 생성이 가능했다. 공격자가 악성 변경을 포함한 PR에 신뢰할 만한 검토 흐름을 꾸밀 수 있으나, 최종 병합에는 관리자의 추가 행동이 필요했다.
구글의 공개 답변은 이 점을 들어 첫 번째 보고를 보상 대상에서 제외했다. 공급망 침해가 성립하려면 사회공학과 관리자 병합이 더 필요하다는 판단이었다. 다만 구글은 저장소를 보강했고 연구자의 기여를 인정했다고 답했다. 현재까지 공개 자료에는 이 경로가 실제 악성 코드 병합이나 이용자 침해로 이어졌다는 증거가 없다.
연구 원문에는 이후 추가된 이슈 분석과 수정 에이전트를 겨냥한 두 번째 경로도 담겼다. 외부 이슈를 자동 분석하는 에이전트가 신뢰된 호출문을 작성해 코드 수정 에이전트를 실행할 수 있었고, 허용 명령 정책의 빈틈을 이용하면 CI 실행 환경에서 명령을 실행할 수 있었다는 설명이다. 해당 환경에는 장기 사용형 ADK 봇 토큰과 구글 클라우드 서비스 계정 키가 노출돼 있었다.
구글 ADK 공식 저장소의 7월 21일 수정 커밋은 issue-analyze, issue-fix, pr-analyze 워크플로를 제거했다. 커밋 설명에는 이들 자동화가 신뢰할 수 없는 이슈와 PR 콘텐츠를 광범위한 저장소 자격증명으로 처리했으며, 더 안전한 설계를 검토하는 동안 노출을 없애기 위해 삭제했다는 내용이 명시됐다. 연구진도 두 번째 문제의 영향을 받는 워크플로가 제거됐다고 확인했다.
이번 사례는 개별 에이전트의 권한만 줄이는 것으로 충분하지 않을 수 있음을 보여준다. 공개 입력을 읽는 에이전트가 댓글이나 명령문을 통해 다른 에이전트의 실행 조건을 만들 수 있다면, 두 자동화 사이의 연결 자체가 새로운 보안 경계가 된다. 에이전트마다 독립된 신원과 최소 권한을 부여하고, 공개 입력에서 나온 텍스트로 권한 높은 워크플로를 호출하지 못하게 해야 한다. 사람의 필수 검토와 브랜치 보호도 자동화된 승인 신호와 분리할 필요가 있다.
출처: Pillar Security 연구자 원문 https://www.pillar.security/blog/ill-just-call-you-agent-to-agent-privilege-boundary-failures-in-ci-cd-on-googles-adk-repository
출처: Google ADK 공식 저장소 수정 커밋 https://github.com/google/adk-python/commit/66730e9d87915a9371b10ecf3ae9a0c37c4aba04
출처: DEF CON 34 AI Village 연구 초록 https://aivillage.org/posters/ill-just-call-you-agent-to-agent-privilege-boundary-failures-in-ci-cd/