
Informazioni su CVE-2026-27825 e CVE-2026-27826 scoperte da Pluto Security e uno script bash per identificare istanze mcp-atlassian vulnerabili che consente l'aggiornamento automatico a una versione corretta.
Due vulnerabilità critiche in mcp-atlassian, uno dei server MCP più popolari dell'ecosistema (oltre 4.4K stelle su GitHub, oltre 4M di download).
Scoperte dal team di Pluto Security.
| CVE | CVSS | Tipo | Descrizione |
|---|
| CVE-2026-27825 | 9.1 Critico | Scrittura Arbitraria di File / RCE | Path traversal nel download degli allegati consente di scrivere qualsiasi file sul filesystem dell'host |
| CVE-2026-27826 | 8.2 Alto | SSRF tramite Header Injection | Header URL non validati consentono agli attaccanti di usare il server MCP come proxy verso reti interne |
Versioni interessate: < 0.17.0 con trasporto HTTP (streamable-http o sse)
Corretta in: v0.17.0
Quando mcp-atlassian viene eseguito con trasporto HTTP, si lega a 0.0.0.0 (tutte le interfacce di rete) senza autenticazione. Qualsiasi dispositivo sulla stessa rete — un WiFi aziendale condiviso, uno spazio di coworking, una VPC cloud — può invocare uno dei suoi 40+ strumenti senza credenziali.
CVE-2026-27825 consente a un attaccante di scrivere file arbitrari sull'host: inserire una reverse shell in ~/.bashrc, aggiungere chiavi SSH a ~/.ssh/authorized_keys, o installare un cron job — ottenendo piena esecuzione remota di codice.
CVE-2026-27826 trasforma il server MCP in un proxy SSRF: l'attaccante può raggiungere endpoint di metadata cloud (169.254.169.254), scansionare servizi interni e mappare la rete della vittima — tutto dalla macchina della vittima stessa.
Usa lo script di aggiornamento per scansionare il tuo sistema:
# Scarica lo script o clona questo repository
# Verifica se sei interessato (sola lettura, non apporta modifiche)
./update-mcp-atlassian.sh --check-only
# Scansiona anche le configurazioni dei client MCP (Claude Desktop, Cursor, VS Code)
./update-mcp-atlassian.sh --check-only --scan
| Metodo | Cosa controlla |
|---|---|
| pip / pip3 | Installazioni di sistema o virtualenv tramite pip show |
| uv tool | Strumenti installati tramite uv tool install |
| Checkout sorgenti | Cerca in ~ file pyproject.toml che referenziano mcp-atlassian |
| Virtualenv | Cerca in ~ directory site-packages/mcp_atlassian |
| Immagini Docker | Immagini corrispondenti a mcp-atlassian |
| Configurazioni client MCP | (con --scan) impostazioni di Claude Desktop, Cursor, VS Code, Claude Code |
=== mcp-atlassian Security Update Check ===
CVE-2026-27825 (CVSS 9.1) + CVE-2026-27826 (CVSS 8.2)
Versione sicura: >= 0.17.0
--- Scansione installazioni mcp-atlassian ---
[!!] pip: 0.16.1 (VULNERABILE) -- /usr/local/lib/python3.12/site-packages
[OK] uv-tool: 0.17.0 (sicuro) -- uv tool install
Trovate 2 installazioni: 1 vulnerabile, 1 sicura, 0 sconosciute
Trovata 1 installazione vulnerabile.
Esegui senza --check-only per aggiornare.
--check-only Solo scansione, nessuna modifica (consigliato al primo avvio)
--scan Controlla anche le configurazioni dei client MCP per riferimenti
a mcp-atlassian e segnala impostazioni di trasporto pericolose
(0.0.0.0, trasporto HTTP)
-h, --help Mostra aiuto
# Scansiona e aggiorna le installazioni vulnerabili
./update-mcp-atlassian.sh
Lo script aggiorna automaticamente le installazioni pip, pip3, uv tool e virtualenv. Per checkout sorgenti e immagini Docker, stampa istruzioni manuali.
| Metodo | Comando |
|---|---|
| pip | pip install --upgrade "mcp-atlassian>=0.17.0" |
| uv tool | uv tool upgrade mcp-atlassian |
| Sorgente | cd mcp-atlassian && git pull && uv sync |
| Docker | docker pull ghcr.io/sooperset/mcp-atlassian:latest |
Per un'analisi tecnica completa che include i percorsi di codice vulnerabili, i flussi di sfruttamento, gli scenari di attacco reali e come funzionano le correzioni, consulta il post del blog.
Il metodo download_attachment() in confluence/attachments.py accetta un target_path fornito dall'utente e vi scrive senza alcuna validazione del percorso:
# v0.16.1 — nessun controllo di path traversal
os.makedirs(os.path.dirname(target_path), exist_ok=True)
with open(target_path, "wb") as f: # scrive in QUALSIASI percorso
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
Corretto in PR #987 aggiungendo validate_safe_path() — risolve i symlink, normalizza i percorsi, impone il contenimento nella directory base.
Il middleware in servers/main.py si fida degli header X-Atlassian-Jira-Url / X-Atlassian-Confluence-Url senza validazione, consentendo a un attaccante di reindirizzare le richieste in uscita del server verso URL arbitrari.
Corretto in PR #986 aggiungendo validate_url_for_ssrf() — allowlist degli schemi, blocco degli IP privati, controlli di risoluzione DNS, validazione dei redirect.
update-mcp-atlassian.sh Script di scansione e aggiornamento (macOS / Linux)
README.md Questo file
-xdev per evitare di attraversare mount di rete--check-only è completamente in sola letturaApache 2.0