
Exploit proof-of-concept per JetBrains TeamCity che esegue l'esecuzione remota di codice non autenticata tramite deserializzazione del protocollo di polling degli agenti, distribuisce un payload JSP e supporta l'esecuzione di comandi multi-thread.
Panoramica • Flusso visivo • Requisiti • Utilizzo • Limitazioni • Mitigazione
[!CAUTION] Questa PoC esegue un comando del sistema operativo e può modificare la directory dell'applicazione TeamCity. Usala solo in un laboratorio isolato o su sistemi per cui disponi di un'autorizzazione scritta esplicita.
JetBrains dichiara che tutte le release di TeamCity On-Premises precedenti alle versioni corrette sono interessate. Quando possibile, aggiorna a una release attualmente supportata. Se un aggiornamento immediato non è possibile, segui le istruzioni del fornitore per il suo plugin di patch di sicurezza.
[!NOTE] Questo repository non afferma che la CVE sia elencata nel catalogo CISA Known Exploited Vulnerabilities. JetBrains non ha segnalato alcuno sfruttamento attivo noto quando ha pubblicato il suo advisory il 27 luglio 2026.
A livello generale, la PoC:
result.txt.Il JSP generato tenta di eliminarsi quando viene invocato. Considera la pulizia come best-effort, non come una garanzia che il target rimanga invariato.
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] Il payload invoca i comandi tramite
bash -c. Un server TeamCity su Windows richiede quindi un'installazione Bash compatibile; altrimenti la fase di esecuzione del comando fallirà.
Esegui la PoC dalla directory del progetto:
python3 exploit.py
Il programma chiede un target, un comando e il numero desiderato di thread:
[*] Target URL or file: http://127.0.0.1:8111
[*] Command: id
[*] Threads (default 10): 1
Inserisci l'URL base completo del target. Quando lo schema è omesso, lo
script usa automaticamente http://.
Per più sistemi di laboratorio, inserisci il percorso di un file di testo con un URL per riga:
http://127.0.0.1:8111
http://192.0.2.10:8111
https://teamcity.lab.example
Non aggiungere commenti inline alle righe dei target perché il parser non li rimuove. Inizia con un thread e aumenta la concorrenza solo dopo aver confermato l'ambito e la capacità del laboratorio autorizzato.
I risultati riusciti vengono aggiunti a result.txt:
http://127.0.0.1:8111 -> uid=1000(tcuser) gid=1000(tcuser) groups=1000(tcuser)
Il file può contenere output di comandi sensibili. Non includerlo nel version control ed eliminalo in modo sicuro quando non è più necessario.
bash sia disponibile sul server TeamCity.../webapps/ROOT; layout
non standard di TeamCity o del contenitore servlet potrebbero non funzionare.args non definito. Il primo comando inviato viene eseguito in modo indipendente,
ma i comandi aggiuntivi da quel prompt falliranno finché il codice non verrà
corretto.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 o a una release
supportata più recente.Questo codice è fornito per ricerca sulla sicurezza, validazione e test difensivi in ambienti di tua proprietà o che sei esplicitamente autorizzato a valutare. Sei responsabile del rispetto delle leggi, dei contratti e delle regole di ingaggio applicabili. L'autore e i collaboratori non si assumono alcuna responsabilità per usi non autorizzati o danni conseguenti.
| Proprietà | Valore |
|---|
| CVE | CVE-2026-63077 |
| Prodotto | JetBrains TeamCity On-Premises |
| Impatto | Esecuzione remota di codice non autenticata tramite il protocollo di polling degli agenti |
| Debolezza | CWE-502 — Deserializzazione di dati non attendibili |
| CVSS | 9.8 Critico — JetBrains CNA, CVSS 3.1 |
| Autenticazione | Non richiesta |
| Versioni corrette | 2025.11.7 e 2026.1.3 |
| Mitigazione alternativa | Plugin di patch di sicurezza JetBrains per TeamCity 2017.1+ |
| TeamCity Cloud | Nessuna azione richiesta ai clienti secondo JetBrains |