Wysoka

MCP Atlassian: Arbitrary file read/exfiltration via upload_attachment missing validate_safe_path()

  • Ujawniono: 22.09.2026
  • Aktualizacja: 11.10.2026 15:18

Summary

The upload_attachment method in confluence/attachments.py reads and uploads arbitrary local files to Confluence without calling validate_safe_path(). Both download methods (download_attachment at line 223, download_content_attachments at line 272) correctly call validate_safe_path() before writing files, but the upload path at lines 35-79 skips this check entirely.

An AI agent connected via MCP (or an attacker influencing that agent through prompt injection) can read any file on the host and exfiltrate it by uploading it as a Confluence page attachment.

Vulnerable Code

File: src/mcp_atlassian/confluence/attachments.py, lines 62-79

python
# No validate_safe_path() call anywhere in this method
if not os.path.isabs(file_path):
    file_path = os.path.abspath(file_path)

if not os.path.exists(file_path):
    return {"success": False, "error": f"File not found: {file_path}"}

filename = os.path.basename(file_path)
attachment = self._upload_attachment_direct(
    content_id, file_path, filename, comment, minor_edit
)

The validate_safe_path function is already imported at line 9 of the same file, and used in the download methods. It was just not added to the upload path.

Proof of Concept

Tested with mcp-atlassian 0.21.1 on Python 3.11 (EC2, Amazon Linux 2023).

python
import inspect
from mcp_atlassian.confluence.attachments import AttachmentsMixin

# Confirm: no validate_safe_path in upload
source = inspect.getsource(AttachmentsMixin.upload_attachment)
assert "validate_safe_path" not in source  # passes

# Confirm: validate_safe_path IS in downloads
assert "validate_safe_path" in inspect.getsource(AttachmentsMixin.download_attachment)  # passes
assert "validate_safe_path" in inspect.getsource(AttachmentsMixin.download_content_attachments)  # passes

An MCP tool call like this reads /etc/passwd and uploads it to Confluence:

js
{"tool": "confluence_upload_attachment", "arguments": {"content_id": "123456", "file_path": "/etc/passwd"}}

Impact

Exfiltration of any file readable by the MCP server process: SSH keys, AWS credentials, .env files, /etc/passwd, application secrets. Data leaves the local machine and lands on a remote Confluence instance accessible to other users.

Suggested Fix

Add validate_safe_path(file_path) before the os.path.exists() check in upload_attachment, matching the existing pattern in the download methods. The function is already imported.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Python (PyPI) mcp-atlassian < 0.22.0 0.22.0

Odnośniki

Ocena CVSS 7.7/10
Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Słabość (CWE)
CWE-22
Platforma
Python (PyPI)
Paczka
mcp-atlassian
Ujawniono
22.09.2026
Aktualizacja
11.10.2026 15:18

Źródła i licencje

OSV / GitHub Advisory Database - PYSEC-2026-4088 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-93xw-j965-9mx3 - CC BY 4.0

Historia podatności: mcp-atlassian

Wszystkie opisane podatności tej paczki (Python (PyPI)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (30) w archiwum
Wszystkich wpisów
30
Pierwsza → ostatnia
03.2026 09.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 2
  • Wysoka 19
  • Średnia 9

Ujawnienia w latach

  1. 2026: 30
Istotność:
  1. MCP Atlassian: Arbitrary file read/exfiltration via upload_attachment missing validate_safe_path() ten wpis
    Wysoka · 7.7 CVE-2026-77258 < 0.22.0 0.22.0
  2. Wysoka CVE-2026-77274 < 0.22.0 0.22.0
  3. Wysoka CVE-2026-77267 < 0.22.0 0.22.0
  4. Wysoka · 8.8 CVE-2026-77243 < 0.22.0 0.22.0
  5. Wysoka · 7.7 CVE-2026-73496 < 0.22.0 0.22.0
Pokaż więcej (1) Widać 20 z 21

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.