
JetBrains TeamCity向けの概念実証エクスプロイト。エージェントポーリングプロトコルのデシリアライゼーションを介して認証なしのリモートコード実行を行い、JSPペイロードを展開し、マルチスレッドのコマンド実行をサポートします。
概要 • ビジュアルフロー • 要件 • 使用方法 • 制限事項 • 緩和策
[!CAUTION] この PoC はオペレーティングシステムのコマンドを実行し、TeamCity アプリケーションディレクトリを変更する可能性があります。隔離されたラボ、または明示的な書面による許可を得たシステムに対してのみ使用してください。
JetBrains は、修正済みのバージョンより前のすべての TeamCity On-Premises リリースが影響を受けると述べています。可能な限り、現在サポートされているリリースにアップグレードしてください。直ちにアップグレードできない場合は、ベンダーのセキュリティパッチプラグインに関する指示に従ってください。
[!NOTE] このリポジトリは、この CVE が CISA Known Exploited Vulnerabilities カタログに掲載されていると主張するものではありません。JetBrains は、2026 年 7 月 27 日にアドバイザリを公開した時点で、既知の活発な悪用は報告されていません。
大まかな流れとして、PoC は次のことを行います:
result.txt に記録します。生成された JSP は、呼び出されると自身を削除しようとします。クリーンアップはベストエフォートであり、ターゲットが元の状態のままであることを保証するものではないとお考えください。
Python 3.9 or later
Target Authorized TeamCity On-Premises lab instance
Transport HTTP or HTTPS access
Shell bash available on the TeamCity server
Packages Python standard library only
Safety Disposable environment or verified backup
[!IMPORTANT] ペイロードは
bash -cを介してコマンドを呼び出します。したがって、Windows 版 TeamCity サーバーには互換性のある Bash のインストールが必要です。そうでない場合、コマンド実行段階は失敗します。
プロジェクトディレクトリから PoC を実行します:
python3 exploit.py
プログラムは、ターゲット、コマンド、および希望するスレッド数を要求します:
[*] Target URL or file: http://127.0.0.1:8111
[*] Command: id
[*] Threads (default 10): 1
ターゲットの完全なベース URL を入力します。スキームが省略された場合、スクリプトは自動的に http:// を使用します。
複数のラボシステムの場合、1 行に 1 つの URL を記載したテキストファイルのパスを入力します:
http://127.0.0.1:8111
http://192.0.2.10:8111
https://teamcity.lab.example
パーサーはインラインコメントを削除しないため、ターゲット行にインラインコメントを追加しないでください。1 スレッドから開始し、許可されたラボの範囲と容量を確認した後でのみ並行性を増やしてください。
成功した結果は result.txt に追記されます:
http://127.0.0.1:8111 -> uid=1000(tcuser) gid=1000(tcuser) groups=1000(tcuser)
このファイルには機密性の高いコマンド出力が含まれる場合があります。バージョン管理の対象外にし、不要になったら安全に削除してください。
bash が利用可能であることを前提としています。../webapps/ROOT にハードコードされています。標準的でない TeamCity またはサーブレットコンテナのレイアウトでは動作しない可能性があります。args オブジェクトを参照しています。最初に送信したコマンドは単独で実行されますが、コードが修正されるまで、そのプロンプトからの追加コマンドは失敗します。flowchart LR
A["Identify TeamCity version"] --> B{"Patched release?"}
B -- "No" --> C["Upgrade to 2025.11.7 / 2026.1.3+"]
B -- "Upgrade blocked" --> D["Apply JetBrains security patch plugin"]
C --> E["Restrict access to trusted networks or VPN"]
D --> E
E --> F["Review logs, credentials, artifacts, and pipelines"]
2025.11.7、2026.1.3、またはそれ以降のサポート対象リリースにアップグレードします。このコードは、所有している環境、または明示的に評価を許可された環境におけるセキュリティ研究、検証、および防御的テストのために提供されています。適用される法律、契約、および実施規則を遵守する責任は利用者にあります。著者および貢献者は、不正使用またはその結果生じる損害について一切の責任を負いません。
| プロパティ | 値 |
|---|
| CVE | CVE-2026-63077 |
| 製品 | JetBrains TeamCity On-Premises |
| 影響 | エージェントポーリングプロトコルを介した未認証のリモートコード実行 |
| 脆弱性 | CWE-502 — 信頼されないデータのデシリアライゼーション |
| CVSS | 9.8 Critical — JetBrains CNA, CVSS 3.1 |
| 認証 | 認証不要 |
| 修正済みリリース | 2025.11.7 および 2026.1.3 |
| 代替の緩和策 | TeamCity 2017.1+ 向け JetBrains セキュリティパッチプラグイン |
| TeamCity Cloud | JetBrains によると顧客側の対応は不要 |