Skip to main content
Vulnerability Database/CVE-2025-31141

CVE-2025-31141: JetBrains TeamCity Information Disclosure

CVE-2025-31141 is an information disclosure vulnerability in JetBrains TeamCity that could expose credentials through exceptions on the Cloud Profiles page. This article covers technical details, affected versions, and mitigation.

Updated:

CVE-2025-31141 Overview

CVE-2025-31141 is an information disclosure vulnerability in JetBrains TeamCity versions before 2025.03. An unhandled exception on the Cloud Profiles page can expose sensitive credentials to unauthorized parties. The flaw maps to [CWE-209]: Generation of Error Message Containing Sensitive Information. JetBrains addressed the issue in TeamCity 2025.03.

The vulnerability requires no authentication or user interaction and is exploitable over the network. Credential leakage from a continuous integration server can give attackers footholds into cloud provider accounts and connected build infrastructure.

Critical Impact

Exception handling on the Cloud Profiles page can disclose cloud provider credentials to unauthorized network attackers, enabling lateral movement into connected cloud environments.

Affected Products

  • JetBrains TeamCity versions prior to 2025.03
  • TeamCity Cloud Profiles integrations (AWS, Azure, GCP, VMware, Kubernetes)
  • Self-hosted TeamCity server deployments

Discovery Timeline

  • 2025-03-27 - CVE-2025-31141 published to NVD
  • 2025-05-16 - Last updated in NVD database

Technical Details for CVE-2025-31141

Vulnerability Analysis

The vulnerability resides in the Cloud Profiles page of TeamCity, which manages integrations with cloud providers for build agent provisioning. When the application encounters an exception during cloud profile processing, the resulting error output can include sensitive credential material rather than a sanitized error message.

This is a classic instance of [CWE-209], where verbose error handling exposes data intended to remain internal. Cloud Profiles typically store API keys, access tokens, and service account credentials used to spin up ephemeral build agents. Disclosure of these secrets undermines the trust boundary between the CI/CD system and the underlying cloud tenant.

The attack surface is network-reachable and requires no privileges, making it exploitable by any actor who can reach the TeamCity web interface. The confidentiality impact is high, while integrity and availability are not directly affected.

Root Cause

The root cause is improper exception handling in the Cloud Profiles component. Credential values are included in exception context that propagates to user-facing error responses. Proper error handling should redact secrets and emit generic messages while logging detailed diagnostics server-side only.

Attack Vector

An unauthenticated remote attacker triggers an exception condition on the Cloud Profiles page. The server response or rendered page surfaces credential data from the exception. The attacker harvests these credentials and pivots to the connected cloud environment.

No verified public exploit or proof-of-concept code is currently available for this issue. Refer to the JetBrains Security Issues Fixed advisory for vendor details.

Detection Methods for CVE-2025-31141

Indicators of Compromise

  • Unexpected HTTP requests to the /admin/admin.html?item=clouds or related Cloud Profiles endpoints from external IP addresses.
  • TeamCity server logs containing stack traces referencing cloud provider SDK classes with embedded credential strings.
  • Anomalous API activity in connected cloud accounts (AWS, Azure, GCP) originating from IPs not associated with TeamCity build agents.

Detection Strategies

  • Review TeamCity access logs for unauthenticated GET or POST requests to Cloud Profiles administration paths.
  • Hunt for error responses containing keywords such as AccessKey, SecretKey, client_secret, or Bearer in HTTP response bodies.
  • Correlate TeamCity exception events with subsequent cloud provider authentication events from unusual source IPs.

Monitoring Recommendations

  • Enable detailed audit logging on TeamCity and forward events to a centralized SIEM for retention and analysis.
  • Monitor cloud provider audit trails (CloudTrail, Azure Activity Log, GCP Audit Logs) for use of TeamCity-associated credentials from unexpected origins.
  • Alert on repeated 500-class HTTP responses from the Cloud Profiles endpoints, which may indicate exception triggering attempts.

How to Mitigate CVE-2025-31141

Immediate Actions Required

  • Upgrade JetBrains TeamCity to version 2025.03 or later, which contains the official fix.
  • Rotate all credentials configured in Cloud Profiles, including cloud provider API keys, service principal secrets, and access tokens.
  • Restrict network access to the TeamCity web interface using firewall rules or a reverse proxy with authentication.

Patch Information

JetBrains released the fix in TeamCity 2025.03. Administrators should review the JetBrains Security Issues Fixed page for upgrade guidance and confirm patched versions in their environment.

Workarounds

  • Place the TeamCity server behind a VPN or zero-trust access proxy until patching is complete.
  • Temporarily disable or remove Cloud Profiles configurations that contain high-value credentials.
  • Apply least-privilege scoping to cloud provider credentials so that any leaked secret has minimal blast radius.
bash
# Example: restrict TeamCity web access to trusted CIDR ranges via iptables
iptables -A INPUT -p tcp --dport 8111 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 8111 -j DROP

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.