Medium

MCP Atlassian: Path traversal in upload_attachment allows arbitrary file read (incomplete fix for CVE-2026-27825)

  • Disclosed: 22.09.2026
  • Updated: 11.10.2026 15:18

Summary

The confluence_upload_attachment and confluence_upload_attachments MCP tools accept a file_path parameter and do not validate that the path is confined to an allowed directory before opening the file. An attacker who can call these tools can read any file accessible to the MCP server process (SSH keys, .env files, API credentials) and exfiltrate it by uploading it to Confluence.

Note: The Jira upload_attachment mixin method in jira/attachments.py has the same missing validation, but it is NOT registered as an MCP tool in servers/jira.py and is therefore not currently reachable via MCP. It should still be patched to prevent future exposure if Jira upload tools are added.

This is an incomplete fix for CVE-2026-27825. That CVE was patched by adding validate_safe_path() to download operations (v0.17.0). The same protection was not applied to upload operations.

Details

validate_safe_path() is imported in both confluence/attachments.py and jira/attachments.py and is correctly called in all download functions. It is absent from the Confluence upload functions (which are exposed as MCP tools) and from the Jira upload mixin methods (which are not currently registered as MCP tools but should still be patched).

Download (protected — correctly patched):

python
# confluence/attachments.py:222-223
validate_safe_path(target_path)  # resolves symlinks + checks is_relative_to(cwd)

Upload (vulnerable — not patched):

python
# confluence/attachments.py:64-79 — NO validate_safe_path() call
if not os.path.isabs(file_path):
    file_path = os.path.abspath(file_path)  # normalizes but does NOT restrict
# ...
files = {"file": (filename, open(file_path, "rb"))}  # opens arbitrary file

Same pattern in jira/attachments.py:386.

Proof of Concept

python
# Call via MCP client
await session.call_tool("confluence_upload_attachment", {
    "content_id": "12345",
    "file_path": "/home/user/.ssh/id_rsa"  # absolute path — no traversal needed
})
# SSH private key is now a Confluence attachment
# Retrieve via: confluence_download_attachment or Confluence UI

Impact

Arbitrary file read from the server filesystem. High-value targets: SSH private keys, .env files, AWS/GCP credentials, database configuration, source code.

Fix

Add validate_safe_path(file_path) call in confluence/attachments.py:upload_attachment() (reachable via MCP) and jira/attachments.py:upload_attachment() (not currently reachable via MCP, but should be patched preventively), consistent with the existing download protection. No changes to validate_safe_path() itself are needed.

python
# Add after os.path.abspath() call:
try:
    validate_safe_path(file_path)
except ValueError as e:
    return {"success": False, "error": str(e)}

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) mcp-atlassian < 0.22.0 0.22.0

References

CVSS score 6.5/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness (CWE)
CWE-22
Platform
Python (PyPI)
Package
mcp-atlassian
Disclosed
22.09.2026
Updated
11.10.2026 15:18

Sources and licenses

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

OSV / GitHub Advisory Database - GHSA-h7wj-5v37-59r2 - CC BY 4.0

Vulnerability history: mcp-atlassian

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (30) in the archive
Total entries
30
First → latest
03.2026 09.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 2
  • High 19
  • Medium 9

Disclosures per year

  1. 2026: 30
Severity:
  1. High CVE-2026-77274 < 0.22.0 0.22.0
  2. High CVE-2026-77267 < 0.22.0 0.22.0
  3. MCP Atlassian: Path traversal in upload_attachment allows arbitrary file read (incomplete fix for CVE-2026-27825) this entry
    Medium · 6.5 CVE-2026-77269 < 0.22.0 0.22.0
  4. High · 8.8 CVE-2026-77243 < 0.22.0 0.22.0
Show more (2) Showing 20 of 22

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.