무슨 일이 있었나
Google ADK TypeScript(@google/adk) 0.4.0부터 0.6.0 이전 버전의 FileArtifactService는 userId 또는 sessionId 매개변수에서 상대 또는 퍼센트 인코딩된 경로 순회 시퀀스(../, ..%2F)를 정리하지 않습니다. ADK API 서버가 이 비기본 아티팩트 백엔드로 배포될 때, 원격 인증 없는 공격자는 아티팩트 디렉터리 레이아웃과 일치하는 파일을 읽거나, 에이전트 도구가 saveArtifact를 호출할 때 의도된 아티팩트 저장 루트 외부의 파일을 쓸 수 있습니다.
왜 중요한가
ADK는 Google의 공식 에이전트 개발 키트입니다; 에이전트 아티팩트 저장소는 에이전트 도구가 생성된 파일, 코드, 검색된 문서를 저장하는 정확한 위치입니다. 여기서 순회가 발생하면 인증 없는 호출자가 아티팩트 루트 외부의 서버 파일에 접근하거나, 에이전트가 나중에 선택할 파일을 심을 수 있습니다 — 이는 데이터 공개 및 에이전트 워크플로에서 간접 콘텐츠 중독의 실제 경로입니다.
공격 경로
ADK API 서버 아티팩트 엔드포인트에 대한 인증 없는 조작된 userId/sessionId 경로 순회
영향받는 시스템
@google/adk (Google ADK TypeScript) 0.4.0 이상 0.6.0 미만, FileArtifactService(비기본)가 활성화된 경우
완화 방안
@google/adk 0.6.0 이상으로 업그레이드 (adk-js의 수정 커밋 710b4ebe / 8c0eaa16)