JetBrains TeamCity CVE-2026-106218 and CVE-2026-106219: Kotlin DSL sandbox escape to server RCE and Git submodule local file read
A Kotlin DSL sandbox escape gives code execution on TeamCity servers, and Git submodule URLs could read local repos. Update to TeamCity 2026.2.1.
- Published
- Updated
- Ecosystem
- CI/CDEnterprise software
- Fixed in
- TeamCity 2026.1.3 or 2025.11.7 (CVE-2026-106218); 2026.2.1 (CVE-2026-106219)
- Exploitation
- No exploitation reported for CVE-2026-106218 or CVE-2026-106219; the earlier CVE-2026-63077 has been in CISA KEV since 5 August 2026
Live scores
CVE-2026-106218- EPSS
- 0.003
low predicted chance of attack - VEDAS
- 0.053
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106219- EPSS
- 0.007
low predicted chance of attack - VEDAS
- 0.049
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-63077- EPSS
- 0.936
very likely to be attacked soon - VEDAS
- 0.989
strong exploit evidence - On CISA KEV
- Yes, since 2026-08-05
Thin horizontal line: the “likely” (EPSS 0.10) or “strong” (VEDAS 0.90) threshold. Shaded “no data” areas are periods when cve-scores did not publish.
What happened
On 6 October 2026, JetBrains published two TeamCity CVEs. Both need a logged-in user (CVSS PR:L) (CVE-2026-106218; CVE-2026-106219):
- CVE-2026-106218 (CVSS 8.8): a Kotlin DSL sandbox escape “leading to RCE on the server”. Fixed in 2026.1.3 and 2025.11.7. Those are the July builds that also fixed CVE-2026-63077, so the bug was patched months before it was disclosed.
- CVE-2026-106219 (CVSS 6.5): missing validation of Git submodule URLs “allowed reading local repositories on the server”. Fixed in 2026.2.1.
TeamCity’s Kotlin DSL is the code form of project configuration, usually kept in a repository as versioned settings. The server compiles and runs it, inside a sandbox, to produce the build configuration. An escape means that a user who can change that DSL may be able to run code on the server itself, with access to everything TeamCity stores.
JetBrains does not publish technical details for these CVEs. CISA’s ADP marks exploitation as “none” for both, and neither is in KEV (CISA KEV). TeamCity 2026.2.1 and 2026.1.5 came out on 5 October and fix 41 and 27 security problems respectively (JetBrains blog; 2026.2.1 release notes; 2026.1.5 release notes).
The earlier, exploited bug. CVE-2026-63077 (CVSS 9.8) lets an unauthenticated attacker run OS commands through the agent polling protocol. It was fixed in 2025.11.7 and 2026.1.3 on 27 July, with a security patch plugin for 2017.1 and later (JetBrains). On 7 August JetBrains reported active and attempted exploitation of unpatched servers (JetBrains). CISA added it to KEV on 5 August and marks it as known to be used in ransomware (CISA KEV).
Am I affected?
| Server version | CVE-2026-106218 | CVE-2026-106219 | CVE-2026-63077 (exploited) |
|---|---|---|---|
| Before 2025.11.7, or 2026.1 before 2026.1.3 | Affected | Affected | Affected |
| 2025.11.7 or later 2025.11.x; 2026.1.3 or later 2026.1.x | Fixed | Affected per the CVE record | Fixed |
| 2026.2.0 | Fixed | Affected | Fixed |
| 2026.2.1 or later | Fixed | Fixed | Fixed |
The CVE-2026-106219 record names only 2026.2.1 as fixed. It does not say whether 2026.1.5 contains the fix, so we treat 2026.1.x as affected.
The version appears in the footer of the TeamCity web UI. Over the REST API:
curl -s -H "Authorization: Bearer $TEAMCITY_TOKEN" https://teamcity.example.com/app/rest/server/versionIf your server was ever below 2026.1.3 or 2025.11.7, check for CVE-2026-63077. JetBrains says to search the server logs for these messages (JetBrains):
# Possible attempted or successful exploit before patching
grep -r 'com.thoughtworks.xstream.converters.ConversionException' <TeamCity_home>/logs/
# Attempt blocked after patching
grep -r 'com.thoughtworks.xstream.security.ForbiddenClassException' <TeamCity_home>/logs/Also review the list of unauthorized build agents for unexpected entries, especially names that start with scan. JetBrains says the date shown for such an agent is not the attack time; use the log timestamps.
What to do now
- Update to TeamCity 2026.2.1 or later. Use the built-in automatic update, the installer, or the updated Docker image (JetBrains blog). On 2026.1.x, 2026.1.5 is the newest bug-fix release, but see the caveat above for CVE-2026-106219.
- Do not rely on the CVE-2026-63077 patch plugin. JetBrains says it addresses only that one CVE. It does nothing for CVE-2026-106218 or CVE-2026-106219 (JetBrains).
- Limit who can change Kotlin DSL settings until you have updated. Review who can edit project settings and who can push to the repositories and branches that hold versioned settings. That is our inference from the bug; JetBrains has published no workaround.
- Keep TeamCity off the internet. JetBrains recommends limiting network access to trusted networks, using a VPN for remote access, running the server with minimum OS privileges, and keeping it on a host separate from build agents (JetBrains).
- If the CVE-2026-63077 log check finds
ConversionExceptionbefore you patched, treat the server as compromised. JetBrains says a successful exploit could expose stored credentials and “compromise the integrity of build artifacts and downstream CI/CD pipelines”. Rebuild the server, rotate the secrets it stores (VCS tokens, cloud keys, deployment credentials), and review recent build artifacts. Remove unauthorized agents namedscan*.
Sources
- CVE-2026-106218 record
- CVE-2026-106219 record
- JetBrains: TeamCity 2026.2.1 and 2026.1.5 are out
- TeamCity 2026.2.1 release notes
- JetBrains: critical security issue CVE-2026-63077, update to 2025.11.7 or 2026.1.3
- JetBrains: CVE-2026-63077 additional guidance following reports of active exploitation
- JetBrains: fixed security issues
- CISA Known Exploited Vulnerabilities catalog