CVE-2026-106218 Overview
CVE-2026-106218 is a sandbox escape vulnerability in JetBrains TeamCity that enables remote code execution (RCE) on the server. The flaw resides in the Kotlin Domain Specific Language (DSL) sandbox used to define build configurations. An authenticated attacker with low privileges can escape the sandbox and execute arbitrary code in the context of the TeamCity server process. The issue affects TeamCity versions prior to 2026.1.3 and 2025.11.7. JetBrains tracks the fix in its public security issues registry.
Critical Impact
An authenticated attacker can escape the Kotlin DSL sandbox to execute arbitrary code on the TeamCity server, compromising build pipelines, source code, and deployment credentials.
Affected Products
- JetBrains TeamCity versions before 2026.1.3
- JetBrains TeamCity versions before 2025.11.7
- TeamCity servers exposing Kotlin DSL build configuration functionality
Discovery Timeline
- 2026-10-06 - CVE-2026-106218 published to the National Vulnerability Database (NVD)
- 2026-10-07 - Last updated in NVD database
Technical Details for CVE-2026-106218
Vulnerability Analysis
TeamCity allows build configurations to be defined using a Kotlin DSL. The DSL executes inside a sandbox intended to restrict access to sensitive server APIs, the filesystem, and process execution. CVE-2026-106218 breaks that boundary.
The weakness is categorized as [CWE-184] Incomplete List of Disallowed Inputs. The sandbox relies on denylisting specific classes, methods, or language constructs rather than enforcing an allowlist. An attacker who authors a Kotlin DSL script can reach APIs that were not covered by the denylist and pivot to arbitrary code execution on the host.
Because the Kotlin DSL runs inside the TeamCity server process, successful exploitation yields code execution with the privileges of that service account. Attackers can read build artifacts, exfiltrate secrets stored in the server, modify pipelines, and tamper with downstream software supply chains.
Root Cause
The root cause is an incomplete denylist in the Kotlin DSL sandbox. Legitimate language features such as reflection, classloaders, or indirect API calls were not fully constrained, giving attackers code paths to invoke blocked functionality.
Attack Vector
The attack vector is network-based and requires low privileges. An attacker with permissions to create or edit a Kotlin DSL build configuration submits a crafted script. When TeamCity evaluates the DSL, the sandbox escape triggers execution of attacker-controlled logic on the server. No user interaction is required. See the JetBrains Security Issues Fixed advisory for vendor details.
// No verified public proof-of-concept is available at the time of writing.
// Refer to the JetBrains advisory for technical specifics.
Stop Remote Code Execution Before It Runs
Singularity™ Endpoint detects and blocks exploit attempts at machine speed, including zero-days and novel attack techniques.
Stop Exploit AttemptsDetection Methods for CVE-2026-106218
Indicators of Compromise
- Unexpected child processes spawned by the TeamCity server JVM, such as shells, scripting interpreters, or curl/wget invocations.
- Newly created or modified Kotlin DSL files (.kts) in version control that include reflection, classloader manipulation, or Runtime.exec style calls.
- Outbound network connections from the TeamCity server to unfamiliar hosts shortly after DSL evaluation.
- Unauthorized changes to build steps, agents, or stored connection tokens.
Detection Strategies
- Review the TeamCity audit log for recently added or edited Kotlin DSL projects by low-privileged users.
- Alert on process lineage where java running TeamCity spawns /bin/sh, cmd.exe, powershell.exe, or compiler binaries outside normal build agents.
- Hunt for Kotlin DSL commits referencing java.lang.reflect, ClassLoader, ProcessBuilder, or Runtime.getRuntime() in configuration repositories.
Monitoring Recommendations
- Forward TeamCity server, audit, and build logs to a centralized SIEM for correlation.
- Monitor filesystem writes under TeamCity data directories and the server JVM working directory.
- Baseline normal outbound traffic from the TeamCity server and alert on deviations.
How to Mitigate CVE-2026-106218
Immediate Actions Required
- Upgrade TeamCity to version 2026.1.3, 2025.11.7, or later.
- Audit recent Kotlin DSL changes and user permission grants for build configuration editing.
- Rotate credentials, API tokens, and signing keys stored in or accessible to the TeamCity server if exploitation is suspected.
Patch Information
JetBrains addressed CVE-2026-106218 in TeamCity 2026.1.3 and 2025.11.7. Patch details are tracked on the JetBrains Security Issues Fixed page. Administrators should apply the update through the standard TeamCity upgrade process and verify the version banner after restart.
Workarounds
- Restrict permissions to create or edit Kotlin DSL build configurations to a small set of trusted administrators until patching is complete.
- Place the TeamCity server behind network controls that limit administrative access to known operator networks.
- Require code review and signed commits for any changes to .teamcity/ Kotlin DSL directories in source control.
# Verify installed TeamCity version after upgrade
curl -s https://teamcity.example.com/app/rest/server \
-H "Authorization: Bearer <token>" | grep -i version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

