Google ADK TypeScript 경로 순회 취약점(CVE-2026-105772)이란?

Google ADK TypeScript의 FileArtifactService에서 발생한 CVE-2026-105772 취약점은 공격자가 조작된 userId와 sessionId 값을 사용하면 인증 없이도 시스템 내 임의 파일을 읽거나 쓸 수 있게 합니다. 심각한 위험이 따릅니다.

CVE-2026-105772 취약점 개요

Google ADK TypeScript(@google/adk) 패키지의 FileArtifactService 구성 요소에서 경로 순회(Path Traversal, CWE-22) 취약점이 발견되었습니다. 파일 시스템 경로를 처리할 때 입력값을 제대로 검증하지 않아, 공격자가 조작된 입력값으로 의도하지 않은 파일 경로에 접근할 수 있게 됩니다.

심각성 평가도 매우 높습니다. GitHub Advisory Database는 [GHSA-r3pf-g3mr-cmr7]로 이 취약점을 ‘Critical’ 심각도로 등록했고, 2026년 10월 20일 관련 내용을 공개했습니다.

기술적 원인 및 영향 범위

1. 취약점 발생 원인 및 공격 메커니즘

핵심은 FileArtifactService가 사용자 입력 userId와 sessionId를 처리하는 방식에 있습니다. 공격자가 이 값에 경로 구분자, 퍼센트 인코딩, 널 바이트 등을 섞은 조작 문자열을 넣으면 시스템은 이를 단순한 식별자가 아니라 파일 경로의 일부로 해석해 버립니다.

그 결과 공격자는 다음과 같은 행위가 가능해집니다:

  • 임의 파일 읽기: 시스템 내 민감한 설정 파일이나 데이터 파일을 무단으로 열어볼 수 있습니다.
  • 임의 파일 쓰기: 서버의 임의 경로에 파일을 만들거나 기존 파일을 덮어써 시스템 설정을 바꾸거나 악성 코드를 심을 수 있습니다.
  • 인증 우회: 이 과정 전체에 별도 인증 절차가 없다는 점에서 위험은 더 커집니다.

2. 영향 범위 및 예외 사항

모든 Google ADK TypeScript 환경이 이번 취약점에 노출되지는 않습니다. 위험 여부는 아티팩트 저장소를 어떻게 구성했는지에 따라 갈립니다.

구성 요소/서비스 영향 여부 상태 및 특이사항
FileArtifactService (비기본 저장소) 영향 있음 조작된 userId/sessionId를 통한 임의 파일 접근 가능
기본 인메모리(in-memory) 아티팩트 서비스 영향 없음 공식적으로 영향이 없는 것으로 확인됨

기본 설정인 인메모리 서비스를 쓰는 환경은 안전합니다. 반면 파일 시스템 기반의 비기본 아티팩트 저장소를 구성해 사용하는 시스템 관리자와 개발자라면 즉시 조치가 필요합니다.

대응 방안 및 수정 버전(@google/adk 0.6.0)

Google은 이 취약점을 해결하는 보안 업데이트를 배포했습니다. 수정 사항은 PR #210에 반영됐고, @google/adk 0.6.0 버전에서 공식적으로 해결됐습니다.

1. 기술적 수정 사항

수정 버전은 입력값 검증을 화이트리스트 방식으로 강화했습니다. userId와 sessionId 값에는 다음 제한이 적용됩니다:

  • 허용 문자: 영숫자, 언더바(_), 하이픈(-), 마침표(.), 앳 기호(@)뿐입니다.
  • 차단 대상: 경로 구분자, 퍼센트 인코딩, 널 바이트 등 경로 순회를 노리는 특수 문자는 원천 차단합니다.

이 화이트리스트가 적용되면서 입력값으로 파일 시스템 경로를 조작하려던 공격 시도는 무력화됐습니다.

2. 권장 조치 단계

시스템 관리자와 보안 담당자가 거쳐야 할 단계는 다음과 같습니다:

  1. 버전 확인: 현재 사용 중인 @google/adk 패키지 버전을 먼저 확인합니다.
  2. 업데이트 수행: 취약점이 해결된 0.6.0 버전 이상으로 바로 올립니다.
  3. 구성 점검: 비기본 아티팩트 저장소를 쓰는 환경인지 확인한 뒤, 업데이트 후에 화이트리스트 검증이 정상 작동하는지 살펴봅니다.

탐지 및 점검 포인트

보안 담당자는 시스템에서 다음 징후나 설정이 있는지 점검합니다.

  1. 입력값 패턴 분석: userId 또는 sessionId 파라미터에 비정상 경로 문자열이 섞여 있는지 로그를 살핍니다.
  2. 파일 변경 확인: 임의 파일 읽기/쓰기 가능성이 있는 만큼 시스템 내 파일 변경 여부도 점검합니다.
  3. 버전 점검: 현재 사용 중인 @google/adk 패키지 버전이 0.6.0 미만인지 확인합니다.

이번 CVE-2026-105772 취약점은 Critical 등급입니다. 파일 시스템 기반 저장소를 사용하는 기업의 보안 담당자와 개발자라면 특히 신속하게 최신 버전으로 업데이트해 임의 파일 읽기 및 쓰기 위험을 제거하는 것이 우선입니다.

댓글 남기기