CVE-2025-54536

5.4 MEDIUM

📋 TL;DR

This Cross-Site Request Forgery (CSRF) vulnerability in JetBrains TeamCity allows attackers to trick authenticated users into performing unintended GraphQL operations. Attackers could modify data or perform actions on behalf of users. All TeamCity instances before version 2025.07 are affected.

💻 Affected Systems

Products:
  • JetBrains TeamCity
Versions: All versions before 2025.07
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires user to be authenticated and tricked into visiting malicious site while logged into TeamCity.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could modify user permissions, delete projects, or alter build configurations through forged GraphQL requests executed by authenticated administrators.

🟠

Likely Case

Attackers could trick users into changing their own settings, modifying build configurations they have access to, or performing other GraphQL operations within their permission scope.

🟢

If Mitigated

With proper CSRF protections or when exploited against low-privilege users, impact is limited to actions within the user's existing permissions.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

CSRF attacks are well-understood and relatively easy to implement once the vulnerable endpoint is identified.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2025.07

Vendor Advisory: https://www.jetbrains.com/privacy-security/issues-fixed/

Restart Required: Yes

Instructions:

1. Backup TeamCity configuration and data. 2. Download TeamCity 2025.07 or later from JetBrains website. 3. Stop TeamCity service. 4. Install the new version following JetBrains upgrade guide. 5. Restart TeamCity service.

🔧 Temporary Workarounds

Implement CSRF Tokens

all

Add custom CSRF protection to GraphQL endpoints using anti-CSRF tokens

Restrict GraphQL Access

all

Limit GraphQL endpoint access through network controls or web application firewalls

🧯 If You Can't Patch

  • Implement strict SameSite cookie policies and require additional authentication for sensitive GraphQL operations
  • Deploy web application firewall with CSRF protection rules and monitor for suspicious GraphQL requests

🔍 How to Verify

Check if Vulnerable:

Check TeamCity version in Administration → Server Administration → Global Settings. If version is below 2025.07, system is vulnerable.

Check Version:

Check TeamCity web interface at Administration → Server Administration → Global Settings

Verify Fix Applied:

After upgrade, verify version shows 2025.07 or higher in Administration → Server Administration → Global Settings.

📡 Detection & Monitoring

Log Indicators:

  • Unusual GraphQL requests from unexpected referrers
  • Multiple failed GraphQL operations from same user session

Network Indicators:

  • GraphQL POST requests without expected CSRF tokens
  • Requests with mismatched Origin/Referer headers

SIEM Query:

source="teamcity.log" AND ("GraphQL" AND "POST") AND NOT referer="*teamcity*"

🔗 References

📤 Share & Export