Skip to main content
TeamCity RCE Flaw: What Went WrongIncident
4 min readFor Security Engineers

TeamCity RCE Flaw: What Went Wrong

A critical vulnerability in JetBrains TeamCity (CVE-2026-63077) is being actively exploited. CISA added it to the Known Exploited Vulnerabilities catalog and issued Binding Operational Directive (BOD) 26-04, requiring federal agencies to patch by August 8, 2026. With a CVSS score of 9.8, this is a real threat. Attackers are exploiting it now.

What Happened

CVE-2026-63077 allows unauthenticated remote code execution through TeamCity's agent polling protocol. An attacker doesn't need credentials or network access. They send a crafted request to the polling endpoint, exploit a deserialization flaw, and execute arbitrary code on your build server.

The vulnerability exists in the communication channel between TeamCity servers and build agents. This protocol handles serialized objects during agent registration and task assignment. When the server deserializes untrusted input without proper validation, attackers can inject malicious payloads that execute during the deserialization process.

Timeline

Pre-disclosure: JetBrains released patches for affected TeamCity versions. Organizations running vulnerable instances had a window to update before public disclosure.

Public disclosure: Security researchers published technical details of CVE-2026-63077, including proof-of-concept code demonstrating the deserialization attack vector.

Active exploitation begins: CISA observed exploitation attempts. Attackers scanned for vulnerable TeamCity instances and used automated tools to compromise exposed servers.

CISA issues BOD 26-04: Federal agencies received a mandatory patching deadline of August 8, 2026. This directive applies to all civilian executive branch agencies.

Ongoing: Exploitation continues. Your CI/CD pipeline is a target if you're running an unpatched TeamCity instance.

Which Controls Failed

Organizations getting compromised failed at multiple control points:

Asset inventory: You can't patch what you don't know exists. Teams deployed TeamCity servers for specific projects, then forgot about them. Shadow IT and decentralized deployment decisions created blind spots.

Vulnerability scanning: Many organizations scan production web applications but skip internal tools. TeamCity servers often run on internal networks without regular vulnerability assessments.

Patch management: Even when teams knew about vulnerable instances, they delayed patching. Common reasons: "It's only internal," "We'll patch during the next maintenance window," "We need to test the update first."

Network segmentation: Build servers with direct internet exposure amplified the risk. The agent polling protocol shouldn't be accessible from untrusted networks, but many deployments left it exposed.

Deserialization controls: The application accepted and processed serialized objects from unauthenticated sources, violating basic input validation principles.

What Standards Require

NIST 800-53 Rev 5 directly addresses these failures:

SI-2 (Flaw Remediation) requires you to install security-relevant software updates within organization-defined time periods. For critical vulnerabilities with active exploitation, that time period should be days, not weeks. Federal agencies get specific deadlines through BOD directives. Everyone else needs to define their own SLAs and stick to them.

CM-8 (System Component Inventory) mandates maintaining an inventory of system components. This includes build servers, CI/CD tools, and development infrastructure. If TeamCity isn't in your asset inventory, you won't know to patch it.

RA-5 (Vulnerability Monitoring and Scanning) requires scanning for vulnerabilities and remediating them according to organizational risk assessments. Your CI/CD infrastructure deserves the same scanning rigor as your production environment.

SC-7 (Boundary Protection) calls for monitoring and controlling communications at external and key internal boundaries. Your build servers shouldn't expose agent polling protocols to the internet.

PCI DSS v4.0.1 Requirement 6.3.3 demands that security vulnerabilities are identified and addressed, with critical patches installed within one month of release. If you process payment data anywhere in your pipeline, this applies to your build infrastructure too.

ISO/IEC 27001 control 8.8 (Management of Technical Vulnerabilities) requires you to obtain timely information about technical vulnerabilities, evaluate exposure, and take appropriate measures. "Appropriate measures" for a 9.8 CVSS vulnerability under active exploitation means emergency patching.

Lessons and Action Items

Build a complete asset inventory. List every CI/CD tool, build server, artifact repository, and deployment pipeline component. Include version numbers, network locations, and responsible teams. Update this inventory whenever you deploy new tooling. Use automated discovery tools if your environment is too large to track manually.

Scan your build infrastructure. Run the same vulnerability scans against CI/CD systems that you run against production. Schedule weekly scans at minimum. For internet-facing build tools, scan daily.

Define patch SLAs by severity and exploitation status. Critical vulnerabilities (CVSS 9.0+) with active exploitation get 48-72 hours. Critical without active exploitation get one week. High severity gets two weeks. Document these SLAs and track compliance.

Segment your build network. Build agents should communicate with build servers over dedicated network segments. Don't expose agent polling protocols to the internet. Use VPNs or private networks for remote agents.

Subscribe to vendor security advisories. JetBrains publishes security bulletins. CISA publishes KEV updates. Subscribe to both. Route these alerts to someone who'll act on them, not to a shared inbox that nobody monitors.

Test your emergency patching process. You need a procedure for deploying critical patches outside your normal change management cycle. Document who approves emergency patches, how you test them, and how you roll them out. Practice this process before you need it in production.

Review deserialization practices. CVE-2026-63077 exploits unsafe deserialization. If your custom applications deserialize untrusted input, you're vulnerable to similar attacks. Review OWASP Top 10 2021 A08:2021 for guidance on safe deserialization.

Monitor for indicators of compromise. Check TeamCity logs for unusual agent registrations, unexpected code executions, or authentication anomalies. If you're running a vulnerable version and haven't patched yet, assume compromise and investigate.

The TeamCity vulnerability demonstrates a pattern: critical infrastructure gets compromised because teams treat internal tooling as lower priority than production systems. Your build pipeline has access to source code, credentials, and deployment mechanisms. It's not less critical than production. It's a different kind of critical.

Patch CVE-2026-63077 now. Then fix the processes that left you vulnerable in the first place.

Topics:Incident

You Might Also Like