DevSecOps

JetBrains Cadence Fell to an Unpatched TeamCity Vulnerability: What the api.cadence.jetbrains.com Breach Reveals About Patch Hygiene in CI/CD Pipelines

On August 23, 2026, JetBrains publicly confirmed that its own Cadence environment had been compromised between August 8 and August 24, 2026 through the exploitation of CVE-2026-63077, a deserialization of untrusted data vulnerability with a CVSS score of 9.8 affecting TeamCity On-Premises. The affected server, api.cadence.jetbrains.com, was taken offline after detection. The most painful aspect of this incident is not the vulnerability itself — it had been patched since July — but the fact that JetBrains, the company that develops TeamCity, had not applied that patch to one of its own production servers. The incident exposes a pattern that repeats itself across thousands of organizations: the software you build to defend yourself can become the vector that defeats you when you trust internal process more than external verification.

Cadence is JetBrains' remote development backend, offered to users of PyCharm and other IDEs in the family to synchronize projects, execute code in cloud infrastructure, and maintain reproducible development environments. By design, that server receives source code, repository access credentials, and potentially configuration secrets that projects synchronize to the remote workspace. That combination — network access, processing of user code, and temporary storage of credentials — turns any Cadence instance into a priority target for actors seeking to pivot toward broader software supply chains.

### The technical mechanism of the flaw

CVE-2026-63077 is a deserialization vulnerability that allows an unauthenticated attacker, with only HTTP or HTTPS access to a TeamCity server, to bypass authentication controls and execute arbitrary operating system commands with the privileges of the TeamCity server process. The class of vulnerability is well known: in Java, deserializing attacker-controlled data without strict type validation allows constructing gadget chains that culminate in remote code execution. TeamCity, being written in Java and exposing a broad HTTP surface for integration with build agents and external systems, offers multiple entry points where deserialization can be invoked, whether through REST endpoints, legacy SOAP messages, or manipulated XML artifacts.

The CVSS score of 9.8 reflects the worst-case scenario: network vector, low complexity, no authentication required, no user interaction required, scope changed, high impact on confidentiality, integrity, and availability. This is the type of flaw an attacker can massage with an automated scanner and a pre-built payload, without needing to know the victim. When a vulnerability with these characteristics enters circulation, the time between public disclosure and first exploitation measured in honeypots is usually under 72 hours. JetBrains released the patch in July 2026. CISA added the vulnerability to its Known Exploited Vulnerabilities (KEV) catalog on August 5, just three weeks later. Seven days later, on August 12, JetBrains had to issue a second advisory confirming active exploitation against servers that had not yet patched.

### What the attackers extracted

When JetBrains reconstructed the timeline after detecting the intrusion, they found that the threat actor had sufficient access to reach storage associated with current Cadence users, including email addresses, source code from synchronized projects, and credentials. In subsequent updates, the company confirmed that backups of the Cadence server corresponding to 2024 had also been accessed, extending the exposure window well beyond the immediate incident. Daniel Gallo, Solutions Engineering Lead at JetBrains, stated that the new findings did not identify additional affected users, but as a precaution the company is treating all information stored on that server as potentially exposed.

The most sensitive component of the theft is not the source files themselves, but the credentials embedded in those files: AWS tokens, cloud service API keys, pipeline secrets that synchronized from PyCharm to be executed in Cadence. When an attacker compromises a server of this type, they don't take code for its intellectual value, but for the access chain that code reveals. In the Cadence case, the natural pivot is toward the client's cloud infrastructure: stealing the AWS credentials that PyCharm uploaded to the environment, then using those credentials to enumerate S3 buckets, EC2 instances, and Lambda functions from which customer data can be extracted or cryptominers can be deployed.

### The elephant in the room: patch hygiene

The fact that JetBrains, the company that distributes TeamCity, did not patch its own Cadence instance is a lesson that goes beyond the incident. JetBrains' advisory explicitly acknowledges that the compromised server "should have been patched as part of the company's own vulnerability response efforts," but does not detail why it was not. The typical reasons in similar incidents are always the same: the server was treated as low-risk internal infrastructure, someone assumed it was not exposed to the internet, the change required a maintenance window that was never scheduled, or the server inventory lost asset traceability.

The operational reality of DevSecOps in 2026 is that no CI/CD server can be treated as "low-risk internal" by default. TeamCity, Jenkins, GitLab Runner, self-hosted GitHub Actions, JFrog Artifactory, and Bamboo are critical infrastructure that touch code, credentials, and deployable artifacts. If they are compromised, the attacker does not need to find a way into the rest of your network: they are already inside, with command execution access and, in many cases, with cloud provider credentials and code signing capability.

### What DevSecOps teams should do now

The first step is immediate and admits no delay: audit all TeamCity On-Premises servers against the patched version corresponding to CVE-2026-63077. Any instance on a previous version must be updated in the next 24 to 48 hours, with a documented rollback plan. For organizations that depend on plugins incompatible with the latest version, the temporary alternative is to restrict network access to the server to known ranges, ideally behind a corporate VPN, until the plugins are updated or replaced.

The second step is to assume that you may have already been compromised. CISA and the Australian Cyber Security Centre (ACSC) have issued independent alerts recommending not only patching but also searching for indicators of compromise in TeamCity logs, underlying operating systems, and downstream systems. The TeamCity logs that should be reviewed are those for the months of July and August 2026: unexpected administrative access, build jobs executed without associated ticket, calls to administrative endpoints from external IP addresses or from EC2 instances that the organization does not recognize as its own.

The third step is to review what credentials may have been exposed. If your TeamCity server had access to AWS tokens, deployment SSH keys, Docker Hub secrets, or code signing credentials, assume those secrets are in the attacker's hands and rotate them. Rotation must be done before any other defensive measure: if the attacker still has valid access, patches and firewalls will not prevent the next lateral movement.

The fourth step, and the most difficult culturally, is to admit that the JetBrains incident can happen in any organization. The difference between a breach contained in days and a breach that ends in customer and regulator notification is usually the speed with which the first anomaly is detected. This requires investment in detection: instrument CI/CD servers with EDR agents, centralize logs in a SIEM, define alerts for anomalous patterns such as jobs executed outside business hours, data transfer spikes to external destinations, or unsanctioned administrative token creation.

### Lessons that go beyond TeamCity

The incident has three readings that transcend the specific product. The first is that critical vulnerabilities with public known exploits cannot remain in the remediation backlog beyond a sprint cycle. If your internal SLA says "critical in 7 days" but the CISA KEV is telling you "confirmed active exploitation," that SLA is miscalibrated.

The second reading is that the build server is a Tier 0 asset, not a Tier 2 asset. Treating it as low-risk internal infrastructure is a threat modeling error. Any server that can execute arbitrary code, access secrets, and sign deployable artifacts must be subject to the same controls as a domain controller or an identity management system.

The third reading is that software vendors themselves are susceptible to the flaws they distribute to their customers. If JetBrains, with a mature security team and intimate knowledge of the product, could not patch its own server in time, no smaller organization is exempt from the risk. The question is not whether you will have an unpatched server in your infrastructure, but how many you have right now and how long it will take you to find them.

### A note on what comes next

The Australian Cyber Security Centre issued on September 1 a specific advisory on CVE-2026-63077 warning that all Australian organizations using TeamCity On-Premises are at risk, without evidence of sectoral targeting. That warning is important because it dispels the illusion that the JetBrains incident was a targeted attack and confirms that the exploit is being used opportunistically against any exposed server. As long as this vulnerability remains on unpatched servers, it will continue to be a cheap, high-reliability entry vector for criminal groups, nation-states, and initial access brokers.

For DevSecOps teams reading this article while planning their next sprint: treat CVE-2026-63077 as a reminder that pipeline security is not measured in policies or architecture documents, but in how many days pass between the disclosure of a critical CVE and the verification that your inventory is clean. The distance between those two points is where the breaches that later appear in headlines occur.

JetBrains' transparency in publishing this second advisory, admitting the exact exposure window, and listing the types of potentially compromised data is an example that more vendors should follow. But even the best incident response does not replace prevention: the patch was available, the advisory was public, and the exploitation was trivial. The rest is disciplined execution, something no tool can impose on its own.