19 marca 2024

Wszystko o podatności JetBrains TeamCity

CVE-2024-27198 / CVE-2024-27199
Zastąpienie uwierzytelniania w JetBrains TeamCity

TL ; DR

Zdalny ✅
Uwierzytelniony ❌
Domyślna konfiguracja ✅
Źródło 🌍/ 🔬

Wersje, których dotyczy problem

TeamCity On-Prem do wersji 2023.11.3 włącznie

SZCZEGÓŁY

4 marca 2024 r. firma JetBrains wydała nową wersję swojego narzędzia TeamCity, platformy do wdrażania i ciągłej integracji. Chociaż wpis na blogu firmy nie zawiera informacji na ten temat, tego samego dnia pojawiły się dwie inne powiązane publikacje: jedna przez samego dostawcę, a druga przez zespoły badawcze firmy Rapid7, szczegółowo opisujące luki w zabezpieczeniach.

W tych artykułach opisano dwie zidentyfikowane podatności:

  • CVE-2024-27198: Obejście uwierzytelniania umożliwiające działania z uprawnieniami administratora (CVSSv3.1: 9.8 [Krytyczny])
  • CVE-2024-27199: Obejście uwierzytelniania umożliwiające ograniczone działania jako administrator (CVSSv3.1: 7.3 [Wysoki])

Druga luka, o niższym stopniu krytyczności, wynika ze słabości w weryfikacji uwierzytelniania, umożliwiając atak typu path traversal. Atak ten polega na obejściu ograniczenia poprzez użycie ścieżek względnych zamiast bezwzględnych w celu uzyskania dostępu do zasobu. Lista dostępnych ścieżek, choć potencjalnie nie jest wyczerpująca, ogranicza możliwe działania atakującego do pobierania informacji, odmowy usługi lub w określonych warunkach, monitorowania komunikacji.

Pierwsza luka ma znacznie większy wpływ. Pozwala ona atakującemu na wykonanie dowolnych działań, potencjalnie prowadzących do zdalnego wykonania kodu (RCE), ze względu na słabość mechanizmu kontroli dostępu.

WYKRYWANIE

Dostępne są reguły wykrywania prób wykorzystania tych luk:

2051505 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE- 2024-27198) - sprawdzenie luki w zabezpieczeniach
2051506 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27198) - Próba utworzenia użytkownika administratora
2051507 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27198) - Próba utworzenia tokenu uwierzytelniającego
2051508 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) - Sprawdzanie podatności
2051509 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) M1
2051510 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) M2
2051511 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) M3
2051512 ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) M4

Purple Team od Gatewatcher sugeruje również następujące, bardziej ogólne zasady wykrywania prób wykorzystania tych luk.

# CVE-2024-27198 alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27198 exploitation attempt”; flow: to_server,established; http.method; content: “POST”; http.uri; content:”?”; content: “jsp=/”; distance:0; content: “|3B|”; distance: 0; content:”.jsp”; distance: 0; isdataat:!1,relative; flowbits:set,TeamCity.CVE-2024-27198; classtype:web-application-attack; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Major, risk 80, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100001; )
alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27198 successful exploitation (adduser)”; flow: to_client,established; flowbits:isset,TeamCity.CVE-2024-27198; http.stat_code; content:”200″;http.response_body; content: “|3C|user username=|22|”; content:”SYSTEM_ADMIN”; distance:0; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Major, risk 95, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100002; ) alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27198 successful exploitation (token)”; flow: to_client,established; flowbits:isset,TeamCity.CVE-2024-27198; http.stat_code; content:”200″;http.response_body; content: “|3C|token name=|22|”; content:”value=|22|”; distance:0; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Major, risk 95, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100003; )

# CVE-2024-27199 alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27199 exploitation attempt M1″; flow: to_server,established; http.uri.raw; content:”/res/”; content: “../”; distance:0; pcre:”/\/(app|admin)\//”; classtype:web-application-attack; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Minor, risk 70, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100004; )
alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27199 exploitation attempt M2″; flow: to_server,established; http.uri.raw; content:”/update/”; content: “../”; distance:0; pcre:”/\/(app|admin)\//”; classtype:web-application-attack; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Minor, risk 70, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100005; )
alert http $EXTERNAL_NET any -> $HOME_NET any (msg: “GW LAB Possible CVE-2024-27199 exploitation attempt M3″; flow: to_server,established; http.uri.raw; content:”/.well-known/acme-challenge/”; content: “../”; distance:0; pcre:”/\/(app|admin)\//”; classtype:web-application-attack; metadata: provider Gatewatcher, performance_impact Medium, signature_severity Minor, risk 70, mitre_tactic_id T0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public-Facing_Application; sid:100006; )

Uwaga: Ponieważ każdy system informatyczny jest unikalny, konieczne jest przetestowanie efektów wszelkich nowych reguł w środowisku testowym, aby zapobiec pogorszeniu wydajności lub fałszywym alarmom.

KOREKTA

Jak wspomniano we wstępie, wydawca wydał już nową wersję (2023.11.4), która usuwa te luki. Udostępniono również łatkę dla użytkowników, którzy nie są w stanie przeprowadzić pełnej aktualizacji w rozsądnym czasie.

Dla przypomnienia, pod koniec 2023 r. w tym samym narzędziu zidentyfikowano lukę typu RCE. Kilka dni później luka ta została już wykorzystana w atakach różnych grup ransomware. Zdecydowanie zaleca się jak najszybszą aktualizację instancji TeamCity, zwłaszcza jeśli są one ujawnione w Internecie.

Autor: Purple Team Gatewatcher

Mateusz Nowak

Mateusz Nowak
product manager Gatewatcher / Sekoia

Masz pytania?
Skontaktuj się ze mną:
nowak.m@dagma.pl
32 793 11 19