vuln2shell

CatalogTeamCity Auth Bypass

TeamCity Auth Bypass (CVE-2024-27198)

Single product teamcity-auth-bypass

Unauthenticated authentication bypass in JetBrains TeamCity On-Premises enabling administrator access and plugin-based RCE. CVSS 9.8. Mass exploitation reported within days of disclosure. Listed in CISA KEV on 7 Mar 2024.

PatchedKEVExploited
Aliases
CVE-2024-27198, CVE-2024-27199
Published
Updated

What the bug is

CVE-2024-27198 is an authentication bypass in JetBrains TeamCity On-Premises that allows an unauthenticated attacker with HTTP(S) access to perform administrator actions. NVD scores it CVSS 3.1 9.8. A companion path-traversal issue, CVE-2024-27199, was disclosed at the same time.

Rapid7's Stephen Fewer discovered both bugs in February 2024. JetBrains fixed them in TeamCity 2023.11.4 (announced around 3-4 Mar 2024) and stated that TeamCity Cloud had already been patched. By 7 Mar 2024, Dark Reading reported LeakIX detecting thousands of internet-facing TeamCity servers with signs of rogue accounts created via CVE-2024-27198. A Metasploit module and public PoCs followed.

Attack path

  1. Reach TeamCity HTTP(S)Unauthenticated access to a TeamCity On-Premises HTTP(S) listener.
  2. Auth bypassA crafted request bypasses authentication checks (CVE-2024-27198).
  3. Admin token or userAttacker creates an administrator token or user through the REST API.
  4. Malicious plugin RCEA plugin upload yields code execution on the TeamCity server OS. Conceptual impact class only.

High-level only. Not a reproduction guide.

Exploitation status

CISA KEV

Listed in CISA KEV as of .

CISA KEV catalog

CISA KEV entry for CVE-2024-27198, JetBrains TeamCity Authentication Bypass Vulnerability. dateAdded 2024-03-07. knownRansomwareCampaignUse Known. CVE-2024-27199 is also KEV-listed (dateAdded 2026-04-20).

First seen

Seen . Source: Dark Reading / LeakIX

Dark Reading reports LeakIX detecting internet-facing TeamCity servers with signs of rogue accounts created via CVE-2024-27198 by 7 Mar 2024. Earlier opportunistic exploitation may exist; this is the dated public mass-exploitation report used here.

What defenders should do today

Do today

  1. 1

    Upgrade TeamCity On-Premises to 2023.11.4 or later

    JetBrains fixed CVE-2024-27198 and CVE-2024-27199 in 2023.11.4. TeamCity Cloud was already patched. If you cannot upgrade immediately, use JetBrains's security patch plugin described in the advisory.

    JetBrains advisory

  2. 2

    Assume compromise if the server was internet-facing while vulnerable

    LeakIX reported rogue administrator accounts on a large share of exposed vulnerable servers. Rotate tokens, review users, and audit plugins.

    Dark Reading report

This week

  1. 1

    Review TeamCity audit and log artifacts

    Rapid7 documents IOCs in teamcity-javaLogging, teamcity-server.log, teamcity-activities.log, disabled-plugins.xml, and plugin unpack directories after malicious plugin upload.

    Rapid7 technical analysis

  2. 2

    Restrict TeamCity HTTP(S) to trusted networks

    Keep CI management interfaces off the public internet. Require VPN or identity-aware proxy access.

Detection rules

Sigma

  • TeamCity Authentication Bypass URI Pattern

    Log source: Reverse-proxy or web access logs in front of TeamCity

    title: TeamCity Authentication Bypass URI Pattern
    id: 89a3b09d-4252-59f1-8eeb-d6e115f66ea5
    status: experimental
    description: Detects requests whose query string carries a jsp= parameter plus a ';' path parameter ending in .jsp, the URI shape Rapid7 documents for CVE-2024-27198 against JetBrains TeamCity.
    references:
        - https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/
    author: vuln2shell
    date: 2026-10-23
    tags:
        - attack.initial-access
        - attack.t1190
        - cve.2024-27198
    logsource:
        category: webserver
    detection:
        selection:
            cs-uri-query|contains|all:
                - 'jsp='
                - ';'
                - '.jsp'
        condition: selection
    falsepositives:
        - Unlikely on TeamCity servers
    level: high

    By vuln2shell, . Source. License: CC0 1.0

    Written by vuln2shell. Untested, tune before use.

    Matches the attacker's original URI as logged by a proxy.

SPL (Splunk)

  • JetBrains TeamCity Authentication Bypass CVE-2024-27198

    Log source: Web data model (Suricata, proxy or access logs)

    | tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Web
      WHERE (
            (Web.url="*?jsp=*"
            AND
            Web.url="*;.jsp*") Web.status=200 Web.http_method=POST
        )
        OR (Web.url IN ("*jsp=/app/rest/users;.jsp","*?jsp=/app/rest/users;.jsp","*?jsp=.*/app/rest/users/id:*/tokens;*") Web.status=200 Web.http_method=POST )
      BY Web.src, Web.dest, Web.http_user_agent,
         Web.url, Web.status, Web.http_method,
         sourcetype, source
    | `drop_dm_object_name("Web")`
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | `jetbrains_teamcity_authentication_bypass_cve_2024_27198_filter`

    By Michael Haag, Splunk, . Source. License: Apache-2.0

    Uses Splunk ES macros and data models from splunk/security_content; the trailing _filter macro is a tuning hook.

  • Windows TeamCity Plugin Installed

    Log source: Sysmon EventID 11 (Endpoint.Filesystem data model)

    | tstats `security_content_summariesonly`
      count min(_time) as firstTime
            max(_time) as lastTime
    
    from datamodel=Endpoint.Filesystem where
    
    Filesystem.file_path="*:\\ProgramData\\JetBrains\\TeamCity\\plugins\\*"
    Filesystem.file_name="*.zip"
    Filesystem.action="created"
    
    by Filesystem.dest Filesystem.action Filesystem.file_name Filesystem.user
       Filesystem.vendor_product Filesystem.file_create_time Filesystem.process_path
       Filesystem.process_guid Filesystem.process_id Filesystem.file_path
    
    | `drop_dm_object_name(Filesystem)`
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | `windows_teamcity_plugin_installed_filter`

    By Raven Tait, Splunk, . Source. License: Apache-2.0

    Uses Splunk ES macros and data models from splunk/security_content; the trailing _filter macro is a tuning hook.

KQL (Microsoft Sentinel / Defender)

  • TeamCity server Java process spawns a shell (Defender)

    Log source: Microsoft Defender for Endpoint DeviceProcessEvents (Windows)

    DeviceProcessEvents
    | where Timestamp > ago(30d)
    | where InitiatingProcessFileName =~ "java.exe" and InitiatingProcessFolderPath has "TeamCity"
    | where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "certutil.exe", "whoami.exe", "net.exe")
    | project Timestamp, DeviceName, InitiatingProcessFolderPath, FileName, ProcessCommandLine, AccountName

    By vuln2shell, . Source. License: CC0 1.0

    Written by vuln2shell. Untested, tune before use.

    KQL port of a subset of Elastic's Suspicious JetBrains TeamCity Child Process rule. Build steps can run shells, so exclude build agents.

LogScale (CrowdStrike)

  • Rewritten bypass URI in teamcity-javaLogging (LogScale)

    Log source: TeamCity teamcity-javaLogging log files ingested into LogScale

    /;\S*\.jsp\?\S*jsp=/
    | groupBy([@host], function=count())

    By vuln2shell, . Source. License: CC0 1.0

    Written by vuln2shell. Untested, tune before use.

    Uses the exact regex Rapid7 suggests for the rewritten URI in teamcity-javaLogging.

ES|QL / EQL (Elastic)

  • Suspicious JetBrains TeamCity Child Process

    Log source: Windows process creation (Elastic Defend, Sysmon, 4688)

    process where host.os.type == "windows" and event.type == "start" and
      process.parent.executable :
                     ("?:\\TeamCity\\jre\\bin\\java.exe",
                      "?:\\Program Files\\TeamCity\\jre\\bin\\java.exe",
                      "?:\\Program Files (x86)\\TeamCity\\jre\\bin\\java.exe",
                      "?:\\TeamCity\\BuildAgent\\jre\\bin\\java.exe") and
      process.name : ("cmd.exe", "powershell.exe", "msiexec.exe", "certutil.exe", "bitsadmin.exe", "wmic.exe", "curl.exe", "ssh.exe",
                       "rundll32.exe", "regsvr32.exe", "mshta.exe", "certreq.exe", "net.exe", "nltest.exe", "whoami.exe", "hostname.exe",
                       "tasklist.exe", "arp.exe", "nbtstat.exe", "netstat.exe", "reg.exe", "tasklist.exe", "Microsoft.Workflow.Compiler.exe",
                       "arp.exe", "atbroker.exe", "bginfo.exe", "bitsadmin.exe", "cdb.exe", "cmstp.exe", "control.exe", "cscript.exe", "csi.exe",
                       "dnx.exe", "dsget.exe", "dsquery.exe", "forfiles.exe", "fsi.exe", "ftp.exe", "gpresult.exe", "ieexec.exe", "iexpress.exe",
                       "installutil.exe", "ipconfig.exe","msxsl.exe", "netsh.exe", "odbcconf.exe", "ping.exe", "pwsh.exe", "qprocess.exe",
                       "quser.exe", "qwinsta.exe", "rcsi.exe", "regasm.exe", "regsvcs.exe", "regsvr32.exe", "sc.exe", "schtasks.exe",
                       "systeminfo.exe", "tracert.exe", "wmic.exe", "wscript.exe","xwizard.exe", "explorer.exe", "msdt.exe") and
     not (process.name : "powershell.exe" and process.args : "-ExecutionPolicy" and process.args : "?:\\TeamCity\\buildAgent\\work\\*.ps1") and
     not (process.name : "cmd.exe" and process.args : "dir" and process.args : "/-c")

    By Elastic, . Source. License: Elastic License 2.0

Suricata / Snort

  • ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27198) - Admin User Creation Attempt

    Log source: Suricata IDS alerts (ET Open ruleset)

    alert http any any -> [$HOME_NET,$HTTP_SERVERS] any (msg:"ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27198) - Admin User Creation Attempt"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"jsp|3d|/app/rest/users"; fast_pattern; content:".jsp"; within:30; http.request_body; content:"|7b|"; startswith; content:"|22|username|22 3a 20 22|"; content:"|22|password|22 3a 20 22|"; content:"|5b 7b 22|roleId|22 3a 20 22|SYSTEM_ADMIN"; reference:cve,2024-27198; reference:url,www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/; classtype:attempted-admin; sid:2051506; rev:5; metadata:affected_product JetBrains_TeamCity, created_at 2024_03_06, cve CVE_2024_27198, deployment Perimeter, deployment Internal, deployment SSLDecrypt, confidence High, signature_severity Major, tag JetBrains_TeamCity, tag CISA_KEV, tag Description_Generated_By_Proofpoint_Nexus, updated_at 2025_08_11, mitre_tactic_id TA0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public_Facing_Application; target:dest_ip;)

    By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)

  • ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) - Vulnerability Check

    Log source: Suricata IDS alerts (ET Open ruleset)

    alert http any any -> $HOME_NET any (msg:"ET WEB_SPECIFIC_APPS JetBrains TeamCity Authentication Bypass Attempt (CVE-2024-27199) - Vulnerability Check"; flow:established,to_server; http.method; content:"GET"; http.uri; pcre:"/^\x2f(res|update|\x2ewell-known\x2facme-challenge)\x2f/"; content:"|2e 2e|"; content:"/admin/diagnostic.jsp"; fast_pattern; endswith; reference:cve,2024-27199; reference:url,www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/; classtype:attempted-recon; sid:2051508; rev:2; metadata:affected_product JetBrains_TeamCity, created_at 2024_03_06, cve CVE_2024_27199, deployment Perimeter, deployment Internal, deployment SSLDecrypt, confidence High, signature_severity Major, tag JetBrains_TeamCity, tag CVE_2024_27199, tag Description_Generated_By_Proofpoint_Nexus, updated_at 2024_11_26, mitre_tactic_id TA0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public_Facing_Application; target:dest_ip;)

    By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)

Affected versions

JetBrains TeamCity On-Premises

Product version table
VersionStatusAdvisory
TeamCity On-Premises through 2023.11.3Affected

The vulnerabilities affect all TeamCity On-Premises versions through 2023.11.3. They have been fixed in version 2023.11.4.

Source
TeamCity CloudVendor stated not affected

TeamCity Cloud servers have already been patched, and we have verified that they weren't attacked.

Source

Timeline6

Key events

Newest first.

  1. KEV

    CISA adds CVE-2024-27198 to KEV. Dark Reading reports LeakIX mass-exploitation telemetry.

    Source
  2. PoC

    Public PoC repository W01fh4cker/CVE-2024-27198-RCE appears.

    Source
  3. Advisory

    Rapid7 publishes technical details. NVD publishes CVE-2024-27198.

    Source
  4. Patch

    JetBrains releases TeamCity 2023.11.4 (Rapid7 saw the release blog on 4 Mar depending on timezone).

    Source
  5. Disclosure

    Rapid7 first contacts JetBrains about the issues.

    Source
Full timeline (6)
Thu 7 Mar 20241
  1. KEV

    CISA adds CVE-2024-27198 to KEV. Dark Reading reports LeakIX mass-exploitation telemetry.

    Source
Wed 6 Mar 20241
  1. PoC

    Public PoC repository W01fh4cker/CVE-2024-27198-RCE appears.

    Source
Mon 4 Mar 20241
  1. Advisory

    Rapid7 publishes technical details. NVD publishes CVE-2024-27198.

    Source
Sun 3 Mar 20241
  1. Patch

    JetBrains releases TeamCity 2023.11.4 (Rapid7 saw the release blog on 4 Mar depending on timezone).

    Source
Tue 20 Feb 20241
  1. Disclosure

    Rapid7 provides technical analysis; JetBrains reproduces the same day.

    Source
Thu 15 Feb 20241
  1. Disclosure

    Rapid7 first contacts JetBrains about the issues.

    Source

News & write-ups

PoC index (for defenders)

Public proof-of-concept links for defensive validation, with a source and a validation status.

Open questions

No open questions recorded.

Original research

Email alerts coming soon

We’re not sending mail yet. Follow the catalog with RSS or the JSON feed.

Email alerts unavailable

Email signup is disabled until a mail provider is configured.

RSSJSON feed