highCVSS 7.7Vulnerability

CVE-2026-77258

## 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: ```json {"tool": "confluence_upload_attachment", "arguments": {"content_id": "123456", "file_pat

Properties

ghsa_id
GHSA-93xw-j965-9mx3
summary
MCP Atlassian: Arbitrary file read/exfiltration via upload_attachment missing validate_safe_path()
severity
high
cvss_score
7.7
cve_id
CVE-2026-77258
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
signal_observed_at
2026-09-23T04:35:57+00:00
is_ghsa_only
false
ghsa_published
2026-09-22T20:36:37Z
source_url
https://github.com/advisories/GHSA-93xw-j965-9mx3
ghsa_updated
2026-09-22T20:36:39Z

Related Entities (4)

HAS_WEAKNESS (1)

[Weakness]Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/mcp-atlassian

AFFECTS (1)

[Software]pip/mcp-atlassian

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-77258 (CVSS 7.7) — Ninja Signal Threat Intelligence | Ninja Signal