위협 요약
JetBrains TeamCity에 인증 없는 원격 코드 실행(RCE) 취약점(CVE-2026-63077)이 발견됐다. TeamCity 빌드 에이전트와 서버 간 통신에 사용되는 에이전트 폴링 프로토콜에서 신뢰할 수 없는 데이터 역직렬화 취약점으로 인해, 외부 공격자가 인증 없이 TeamCity 서버에 임의 코드를 실행할 수 있다. CISA는 2026년 8월 5일 KEV(Known Exploited Vulnerabilities) 목록에 등재했고, 조치 기한은 8월 8일로 설정됐다. CVSS 9.8(Critical)로 평가되며, JetBrains은 TeamCity 2026.1.3 및 2025.11.7에서 이 취약점을 수정했다.
취약점 개요
CVE-2026-63077은 JetBrains TeamCity 2026.1.3 미만(2025.11.7 미만)에서 발견된 신뢰할 수 없는 데이터 역직렬화(Deserialization of Untrusted Data, CWE-502) 취약점이다. TeamCity는 기업 소프트웨어 개발에서 널리 사용되는 지속적 통합(CI) 및 지속적 전달(CD) 서버로, 소스 코드 빌드, 테스트, 배포 파이프라인을 자동화한다.
이 취약점은 빌드 에이전트(Build Agent)와 TeamCity 서버 간 통신에 사용되는 에이전트 폴링 프로토콜(Agent Polling Protocol)에 존재한다. 빌드 에이전트는 서버에 작업 상태를 폴링하고, 서버는 작업 결과와 관련 데이터를 역직렬화한다. 이 과정에서 공격자가 조작한 직렬화 데이터를 서버가 검증 없이 역직렬화하면, 인증 없이 TeamCity 서버에서 임의 코드가 실행된다.
CVSS v3.1 기준 9.8점(Critical)로, CVSS 벡터는 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H이다. 네트워크 기반 원격 공격이 가능하며, 공격 복잡도는 낮고, 인증이 필요 없으며, 사용자 상호작용도 필요 없다. 기밀성, 무결성, 가용성에 모두 심각한 영향을 미친다.
CISA의 SSVC 평가에서 exploitation=active(실제 악용 확인), automatable=yes(자동화 가능), technicalImpact=total(기술적 영향 최대)로 판정됐다.
기술적 분석
CWE-502(신뢰할 수 없는 데이터 역직렬화) 유형이다. TeamCity의 에이전트 폴링 프로토콜은 Java 직렬화 데이터를 주고받는데, 서버 측에서 이를 검증 없이 역직렬화하는 과정에서 RCE가 발생한다.
에이전트 폴링 프로토콜과 역직렬화:
TeamCity는 빌드 에이전트와 서버 간 통신을 위해 자체 프로토콜을 사용한다. 에이전트는 서버의 폴링 엔드포인트에 주기적으로 연결해 새로운 빌드 작업이 있는지 확인하고, 빌드 결과를 서버에 전송한다. 이 과정에서 전송되는 데이터는 Java 직렬화(Serialization) 형식으로 인코딩되며, 서버 측은 이를 역직렬화(Deserialization)해 파싱한다.
문제는 서버가 역직렬화 과정에서 데이터를 충분히 검증하지 않는다는 점이다. 공격자가 TeamCity 서버의 에이전트 폴링 엔드포인트에 접근할 수 있는 네트워크 환경에 있으면, 조작된 Java 직렬화 객체를 전송해 임의 코드를 실행할 수 있다.
공격 흐름:
1. 공격자 → TeamCity 서버 에이전트 폴링 엔드포인트 접근
2. 조작된 Java 직렬화 객체 전송 (Gadget Chain 포함)
3. 서버가 데이터를 검증 없이 역직렬화
4. Gadgets가 실행되며 임의 코드 실행(RCE)
탐지 신호:
- TeamCity 서버의 에이전트 폴링 엔드포인트에 대한 비정상 접근 시도 (비인식 IP, 비정규 에이전트)
- Java 역직렬화 예외 또는 비정상 객체 생성 로그
- TeamCity JVM 프로세스의 비정상 자식 프로세스 생성
- 빌드 로그나 시스템 로그에서 예상치 못한 명령 실행 기록
- 외부 IP로 향하는 비정상 네트워크 연결 (C2 통신 또는 데이터 유출)
- TeamCity 서버 파일 시스템의 비정상 변경 (웹셸 설치, 계정 생성 등)
공격 가능성과 복잡도:
CVSS 공격 복잡도가 낮고, 실제 악용이 확인된 상태다. 공개된 PoC나 exploit 코드의 존재 여부는 명확하지 않으나, CISA가 KEV에 등재하고 exploitation=active로 평가한 것은 실제 공격이 관측되었다는 의미다. TeamCity가 기업 내부망에 배치되더라도, DMZ나 CI/CD 파이프라인 외부 접근이 있는 경우 위험에 노출된다.
영향 범위
TeamCity 2026.1.3 미만(2025.11.7 미만) 버전이 영향을 받는다. TeamCity를 운영하는 조직은 거의 전부가 해당된다.
TeamCity가 CI/CD 파이프라인의 핵심 플랫폼이라는 점에서, 다음 정보가 노출될 위험이 있다.
- 소스 코드 및 빌드 artifacts: 빌드 중인 소스 코드, 컴파일 결과, 빌드 출력물
- 자격 증명 및 비밀 정보: 빌드 스크립트에 저장된 API 키, 데이터베이스 비밀번호, 클라우드 자격 증명, Git 리포지토리 토큰
- 빌드 에이전트 제어: TeamCity 서버를 통해 모든 빌드 에이전트를 제어할 수 있으며, 내부 네트워크로의 횡적 이동 가능
- CI/CD 파이프라인 장악: 빌드 파이프라인을 통해 악성 코드를 배포 빌드에 포함시켜, 최종 사용자 환경으로 공격 확산 가능
CISA KEV에 2026년 8월 5일 등재되었고, CISA BOD 26-04(방어적 보안 조치 지시사항)의 적용 대상이기도 하다. 정부 및 공공기관은 조치 기한 8월 8일까지 대응을 완료해야 한다. 비규제 조직 역시 실제 악용이 확인된 상태이므로 즉시 조치해야 한다.
대응 방안
1. TeamCity 2026.1.3 또는 2025.11.7 이상으로 즉시 업데이트
가장 우선순위가 높은 조치다. JetBrains은 2026.1.3(2026.1.x 라인)과 2025.11.7(2025.11.x 라인)에서 이 취약점을 수정했다. 해당 버전 이상으로 즉시 업데이트한다.
2. 에이전트 폴링 엔드포인트 접근 제한
TeamCity 서버의 에이전트 폴링 엔드포인트에 대한 외부 접근을 제한한다. 방화벽 규칙을 통해 빌드 에이전트 IP 범위에서만 접근할 수 있도록 설정한다. DMZ나 외부 네트워크에서 TeamCity 서버의 해당 엔드포인트에 대한 접근은 차단한다.
3. TeamCity 인스턴스 감염 여부 점검
이미 공격이 발생했을 가능성을 가정하고 다음 사항을 점검한다.
- TeamCity 서버 로그에서 비정상 에이전트 접근 기록 확인
- JVM 프로세스의 비정상 자식 프로세스 또는 명령 실행 로그 분석
- 빌드 로그에서 예상치 못한 명령 실행 또는 파일 생성 여부 확인
- TeamCity 데이터 디렉토리의 비정상 파일 변경 (웹셸, 백도어 등)
- 빌드 스크립트나 설정의 비정상 변경 여부 확인
- 자격 증명 및 API 키 유출 가능성 평가
4. 빌드 에이전트 인증 강화
에이전트-서버 간 통신에 사용되는 인증 토큰을 교체하고, 새로운 보안 토큰을 설정한다. 빌드 에이전트의 IP 기반 접근 제약을 강화하고, 불필요한 외부 에이전트 접근을 차단한다.
5. 네트워크 분할 및 최소 권한 접근
TeamCity 서버와 빌드 에이전트를 분리된 네트워크 세그먼트에 배치한다. 에이전트 폴링 엔드포인트에 대한 접근은 전용 네트워크 또는 VLAN으로 제한하고, 외부 인터넷에서 직접 접근할 수 없도록 설정한다.
6. CISA BOD 26-04 준수
규제 대상 조직은 조치 기한 내 대응 완료 여부를 문서화하고, 준수 상태를 입증할 증거를 보존한다.
참고문헌
-
NVD — CVE-2026-63077 상세
https://nvd.nist.gov/vuln/detail/CVE-2026-63077 -
CISA KEV 카탈로그 — CVE-2026-63077
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-63077 -
CVE.org — CVE-2026-63077 공식 기록
https://www.cve.org/CVERecord?id=CVE-2026-63077 -
JetBrains — Security Issues Fixed
https://www.jetbrains.com/privacy-security/issues-fixed/
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!