🇰🇷 한글 설명
Google Agent Development Kit(ADK)의 개발용 웹 서버에서 WebSocket의 Origin 검증 누락 및 허용 범위가 넓은 교차 도메인 정책으로 인해 발생합니다. 공격자는 개발자가 악성 웹 페이지를 방문할 경우 로컬에서 실행 중인 에이전트를 제어하고 데이터를 탈취할 수 있습니다.
💡 쉬운 설명
개발 도구가 보안 설정 없이 열려 있어, 인터넷상의 나쁜 사이트에 접속만 해도 내 컴퓨터에서 돌아가는 AI 에이전트를 조종하거나 정보를 훔쳐갈 수 있는 문제입니다. 마치 집 문을 열어두어 지나가는 사람이 마음대로 들어와 물건을 가져가는 것과 같습니다.
🇺🇸 원문 (English)
Missing Origin Validation in WebSockets (CWE-1385) and Permissive Cross-domain Policy with Untrusted Domains (CWE-942) in the development web server (ADK Web) in Google Agent Development Kit (ADK) for Java (com.google.adk:google-adk-dev versions 0.1.0 before 1.13.0 and com.google.adk:google-adk-maven-plugin versions 0.3.0 before 1.13.0) allow a remote attacker to control a locally running agent and read its data via a malicious web page visited by a developer while the server is running. The /run_live WebSocket endpoint accepts connections from any origin by default (hardcoded via setAllowedOrigins("*") in versions 0.1.0 through 1.5.0, and defaulting to * via adk.web.cors.origins in versions 1.6.0 through 1.12.0), and since version 0.4.0 the REST API returns Access-Control-Allow-Origin: * by default. Because the server has no authentication and requests originate from the developer's browser (so binding to localhost does not prevent exploitation), a cross-origin page can send messages to the agent (triggering registered tools), stream agent responses, and list, read, create, or delete sessions and artifacts. In versions 1.6.0 through 1.12.0, users can mitigate the issue by setting the adk.web.cors.origins property to an explicit allowlist of trusted origins (such as http://localhost:8000). The vulnerability is fixed in version 1.13.0, which enforces a same-origin default for CORS and the /run_live WebSocket endpoint, and rejects DNS-rebinding requests over loopback.
📍 영향받는 시스템
com.google.adk:google-adk-dev (0.1.0 ~ 1.13.0 미만), com.google.adk:google-adk-maven-plugin (0.3.0 ~ 1.13.0 미만)
⚔️ 공격 벡터
개발자가 실행 중인 에이전트 환경에서 악성 웹 페이지를 방문하면, 브라우저를 통해 로컬 WebSocket 엔드포인트로 공격 명령이 전달됨
🛡️ 대응 방법
ADK 버전을 1.13.0 이상으로 업데이트하거나, 1.6.0~1.12.0 버전 사용 시 adk.web.cors.origins 설정을 신뢰할 수 있는 도메인으로 제한함
🔧 검증 코드
출력된 결과에서 해당 라이브러리의 버전이 1.13.0 미만인지 확인하여 취약 여부를 판단합니다.
mvn dependency:list | grep -E 'google-adk-dev|google-adk-maven-plugin'