CVE-2025-54534 Overview
CVE-2025-54534 is a reflected cross-site scripting (XSS) vulnerability [CWE-79] in JetBrains TeamCity versions before 2025.07. The flaw resides in the agentpushPreset page, where unsanitized input is reflected back to the user's browser. An authenticated attacker with high privileges can craft a malicious URL that executes arbitrary JavaScript in a victim's session when the link is visited. Exploitation requires user interaction and changes the security scope, enabling the attacker to influence resources beyond the vulnerable component. JetBrains addressed the issue in TeamCity 2025.07.
Critical Impact
Successful exploitation allows attackers to execute arbitrary scripts in victims' browsers, potentially leading to session theft, defacement, or unauthorized actions within TeamCity.
Affected Products
- JetBrains TeamCity versions prior to 2025.07
- TeamCity on-premises CI/CD server deployments
- TeamCity instances exposing the agentpushPreset administrative page
Discovery Timeline
- 2025-07-28 - CVE-2025-54534 published to the National Vulnerability Database (NVD)
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-54534
Vulnerability Analysis
The vulnerability is a reflected XSS flaw in the agentpushPreset page of JetBrains TeamCity. The application accepts user-supplied parameters and renders them back into the HTTP response without sufficient output encoding. When an attacker-controlled payload reaches the response body, the victim's browser interprets the injected content as executable script.
The scope change in the vector string indicates that script execution in the vulnerable page can affect resources outside the original security authority. Attackers can leverage this to pivot into other TeamCity contexts, including project configurations, build parameters, or administrative panels accessible to the victim.
Because TeamCity orchestrates continuous integration pipelines, a successful XSS attack can expose source code secrets, build agent tokens, and deployment credentials rendered in the authenticated user's session.
Root Cause
The root cause is improper neutralization of input during web page generation [CWE-79]. The agentpushPreset handler reflects request parameters into HTML without context-aware escaping. Standard defenses such as HTML entity encoding, attribute encoding, or a strict Content Security Policy (CSP) were insufficient or absent for this endpoint.
Attack Vector
Exploitation requires an authenticated attacker with elevated privileges to craft a URL containing a malicious payload targeting the agentpushPreset page. The attacker delivers the link to a privileged TeamCity user through phishing, chat, or an internal message. When the victim opens the URL in an authenticated session, the injected script executes in the browser under the TeamCity origin. The attacker can then exfiltrate cookies, issue API requests on the victim's behalf, or manipulate build configurations.
No verified public proof-of-concept exploit is available. Refer to the JetBrains Security Issues Fixed page for vendor-published remediation details.
Detection Methods for CVE-2025-54534
Indicators of Compromise
- HTTP requests to /agentpushPreset containing suspicious payload characters such as <script>, javascript:, onerror=, or encoded variants
- Unexpected outbound requests from TeamCity administrator browsers to attacker-controlled domains shortly after visiting internal URLs
- Audit log entries showing unauthorized configuration changes initiated from administrator sessions
Detection Strategies
- Inspect TeamCity web server access logs for requests to agentpushPreset that include URL-encoded script tags or event handler attributes
- Deploy a web application firewall (WAF) rule to flag reflected XSS payload patterns targeting TeamCity endpoints
- Review TeamCity audit trails for configuration or agent changes made through authenticated administrator sessions near the time of suspicious URL access
Monitoring Recommendations
- Enable verbose HTTP request logging on the TeamCity reverse proxy and forward logs to a centralized SIEM for correlation
- Alert on anomalous referrer chains where TeamCity administrators arrive at agentpushPreset from external sources such as email or chat links
- Monitor browser-side CSP violation reports if a report-only policy is deployed in front of TeamCity
How to Mitigate CVE-2025-54534
Immediate Actions Required
- Upgrade all TeamCity instances to version 2025.07 or later as published by JetBrains
- Restrict access to the TeamCity administrative interface to trusted networks or VPN-only reachability
- Rotate TeamCity administrator credentials and API tokens if suspicious access to agentpushPreset is identified in logs
Patch Information
JetBrains fixed CVE-2025-54534 in TeamCity 2025.07. Review the official JetBrains Security Issues Fixed advisory for release notes and upgrade guidance. Apply the vendor patch rather than relying on compensating controls alone.
Workarounds
- Place TeamCity behind a WAF configured with reflected XSS signatures until upgrades are completed
- Enforce a strict Content Security Policy at the reverse proxy to limit inline script execution within the TeamCity origin
- Train administrators to avoid clicking unsolicited links referencing TeamCity administrative pages such as agentpushPreset
# Example NGINX reverse proxy header enforcing a restrictive CSP for TeamCity
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

