CVE-2026-77257
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, HTTP-exposed Jira and Confluence upload tools pass a caller-provided file_path to local file operations without restricting it to the workspace. A remote MCP caller with tool access can cause the server to read sensitive local files and upload them as Atlassian attachments. The advisory traces the vulnerable input and processing flow through streamable-http, upload_attachment, and file_path, which identify the affected entry points, controls, and code paths. This issue is fixed in version 0.22.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.3
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, HTTP-exposed Jira and Confluence upload tools pass a caller-provided file_path to local file operations without restricting it to the workspace. A remote MCP caller with tool access can cause the server to read sensitive local files and upload them as Atlassian attachments. The advisory traces the vulnerable input and processing flow through streamable-http, upload_attachment, and file_path, which identify the affected entry points, controls, and code paths. This issue is fixed in version 0.22.0.
- Record
CVE-2026-77257- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-84741
8.3
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, HTTP-exposed Jira and Confluence upload tools pass a caller-provided file_path to local file operations without restricting it to the workspace. A remote MCP caller with tool access can cause the server to read sensitive local files and upload them as Atlassian attachments. The advisory traces the vulnerable input and processing flow through streamable-http, upload_attachment, and file_path, which identify the affected entry points, controls, and code paths. This issue is fixed in version 0.22.0.
- Record
EUVD-2026-84741- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-mrq8-fv7v-hhjg
8.3
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
sooperset/mcp-atlassian: HTTP upload tools can attach arbitrary server-local files
Date: 2026-05-05
Target: sooperset/mcp-atlassian
Commit: d8bc78698a63cb6b321c7ca796d6329d448f7f6d
Summary
mcp-atlassian supports HTTP/SSE deployment for persistent, remote, and multi-user use. In that mode, write-capable Jira and Confluence attachment flows accept caller-controlled server-local file paths and read those paths without an upload-source allowlist or base directory restriction.
An authenticated caller, or a prompt-injected agent with tool-call capability, can cause the MCP server process to read a local file it can access and attach that file into a Jira issue or Confluence page using configured Atlassian credentials.
This is distinct from the prior download-path advisory: that issue was an arbitrary file write sink. This path is upload-source local file disclosure.
Impact
Impact is local file disclosure through an authenticated Atlassian attachment write. In Docker/Kubernetes deployments that mount .env or token material into the service, exposed files may include API tokens, OAuth credentials, service configuration, or other local secrets readable by the MCP process.
The issue is bounded by tool access and Atlassian permissions: the attacker needs an MCP call path to a write tool and an issue/page where the attachment can be written. It is not direct RCE.
Severity is Medium-to-High depending on deployment:
- Medium for single-user/local stdio usage or tightly scoped tokens.
- High where HTTP/streamable deployments are shared, write tools are exposed, and the server has access to secrets or broad filesystem mounts.
Source Evidence
HTTP/multi-user deployment is first-class:
docs/http-transport.mdx:1-7describes running as a persistent HTTP service for multi-user and remote deployment.docs/http-transport.mdx:10-13lists SSE and streamable-http endpoints.docs/http-transport.mdx:88-90says both HTTP transports support per-request authentication.docs/advanced/docker-production.mdx:25-37shows Docker deployment with.env, exposed ports, andHOST=0.0.0.0.docs/advanced/docker-production.mdx:91-103shows Atlassian credentials stored in.env.src/mcp_atlassian/__init__.py:359-363defaults HTTP host to0.0.0.0unless overridden.
The Confluence upload path reads caller-chosen server-local files:
src/mcp_atlassian/servers/confluence.py:1290-1315exposesfile_pathand explicitly accepts absolute or relative paths.src/mcp_atlassian/servers/confluence.py:1356-1363passesfile_pathtoconfluence_fetcher.upload_attachment.src/mcp_atlassian/confluence/attachments.py:62-70only converts relative paths to absolute and checks existence.src/mcp_atlassian/confluence/attachments.py:77-80passes the path to_upload_attachment_direct.src/mcp_atlassian/confluence/attachments.py:477opensfile_pathfor the multipart upload.
The Jira update path can also upload caller-chosen server-local files:
src/mcp_atlassian/servers/jira.py:1564-1568exposesjira_update_issueas a write tool intoolset:jira_issues.src/mcp_atlassian/servers/jira.py:1609-1618acceptsattachmentsas a JSON array or comma-separated list of file paths.src/mcp_atlassian/servers/jira.py:1648-1674parses those file paths and adds them to the update payload.src/mcp_atlassian/jira/issues.py:1132-1137forwardsattachmentstoupload_attachments.src/mcp_atlassian/jira/attachments.py:372-389converts relative paths to absolute, checks existence, opens the path, and passes it tojira.add_attachment.
Existing controls do not authorize the upload source path:
src/mcp_atlassian/utils/decorators.py:45-72blocks writes only when read-only mode is enabled.src/mcp_atlassian/servers/main.py:276-279filters write tools out of listing only in read-only mode.src/mcp_atlassian/utils/toolsets.py:158-183currently enables all toolsets whenTOOLSETSis unset. -…
- Record
GHSA-mrq8-fv7v-hhjg- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
8.3
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, HTTP-exposed Jira and Confluence upload tools pass a caller-provided file_path to local file operations without restricting it to the workspace. A remote MCP caller with tool access can cause the server to read sensitive local files and upload them as Atlassian attachments. The advisory traces the vulnerable input and processing flow through streamable-http, upload_attachment, and file_path, which identify the affected entry points, controls, and code paths. This issue is fixed in version 0.22.0.
- Record
CVE-2026-77257- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
8.3
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, HTTP-exposed Jira and Confluence upload tools pass a caller-provided file_path to local file operations without restricting it to the workspace. A remote MCP caller with tool access can cause the server to read sensitive local files and upload them as Atlassian attachments. The advisory traces the vulnerable input and processing flow through streamable-http, upload_attachment, and file_path, which identify the affected entry points, controls, and code paths. This issue is fixed in version 0.22.0.
- Record
CVE-2026-77257- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVGHSA-mrq8-fv7v-hhjg
8.3
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
sooperset/mcp-atlassian: HTTP upload tools can attach arbitrary server-local files
Date: 2026-05-05
Target: sooperset/mcp-atlassian
Commit: d8bc78698a63cb6b321c7ca796d6329d448f7f6d
Summary
mcp-atlassian supports HTTP/SSE deployment for persistent, remote, and multi-user use. In that mode, write-capable Jira and Confluence attachment flows accept caller-controlled server-local file paths and read those paths without an upload-source allowlist or base directory restriction.
An authenticated caller, or a prompt-injected agent with tool-call capability, can cause the MCP server process to read a local file it can access and attach that file into a Jira issue or Confluence page using configured Atlassian credentials.
This is distinct from the prior download-path advisory: that issue was an arbitrary file write sink. This path is upload-source local file disclosure.
Impact
Impact is local file disclosure through an authenticated Atlassian attachment write. In Docker/Kubernetes deployments that mount .env or token material into the service, exposed files may include API tokens, OAuth credentials, service configuration, or other local secrets readable by the MCP process.
The issue is bounded by tool access and Atlassian permissions: the attacker needs an MCP call path to a write tool and an issue/page where the attachment can be written. It is not direct RCE.
Severity is Medium-to-High depending on deployment:
- Medium for single-user/local stdio usage or tightly scoped tokens.
- High where HTTP/streamable deployments are shared, write tools are exposed, and the server has access to secrets or broad filesystem mounts.
Source Evidence
HTTP/multi-user deployment is first-class:
docs/http-transport.mdx:1-7describes running as a persistent HTTP service for multi-user and remote deployment.docs/http-transport.mdx:10-13lists SSE and streamable-http endpoints.docs/http-transport.mdx:88-90says both HTTP transports support per-request authentication.docs/advanced/docker-production.mdx:25-37shows Docker deployment with.env, exposed ports, andHOST=0.0.0.0.docs/advanced/docker-production.mdx:91-103shows Atlassian credentials stored in.env.src/mcp_atlassian/__init__.py:359-363defaults HTTP host to0.0.0.0unless overridden.
The Confluence upload path reads caller-chosen server-local files:
src/mcp_atlassian/servers/confluence.py:1290-1315exposesfile_pathand explicitly accepts absolute or relative paths.src/mcp_atlassian/servers/confluence.py:1356-1363passesfile_pathtoconfluence_fetcher.upload_attachment.src/mcp_atlassian/confluence/attachments.py:62-70only converts relative paths to absolute and checks existence.src/mcp_atlassian/confluence/attachments.py:77-80passes the path to_upload_attachment_direct.src/mcp_atlassian/confluence/attachments.py:477opensfile_pathfor the multipart upload.
The Jira update path can also upload caller-chosen server-local files:
src/mcp_atlassian/servers/jira.py:1564-1568exposesjira_update_issueas a write tool intoolset:jira_issues.src/mcp_atlassian/servers/jira.py:1609-1618acceptsattachmentsas a JSON array or comma-separated list of file paths.src/mcp_atlassian/servers/jira.py:1648-1674parses those file paths and adds them to the update payload.src/mcp_atlassian/jira/issues.py:1132-1137forwardsattachmentstoupload_attachments.src/mcp_atlassian/jira/attachments.py:372-389converts relative paths to absolute, checks existence, opens the path, and passes it tojira.add_attachment.
Existing controls do not authorize the upload source path:
src/mcp_atlassian/utils/decorators.py:45-72blocks writes only when read-only mode is enabled.src/mcp_atlassian/servers/main.py:276-279filters write tools out of listing only in read-only mode.src/mcp_atlassian/utils/toolsets.py:158-183currently enables all toolsets whenTOOLSETSis unset. -…
- Record
GHSA-mrq8-fv7v-hhjg- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVPYSEC-2026-4098
8.3
MCP Atlassian: HTTP upload tools accept arbitrary server-local file paths
sooperset/mcp-atlassian: HTTP upload tools can attach arbitrary server-local files
Date: 2026-05-05
Target: sooperset/mcp-atlassian
Commit: d8bc78698a63cb6b321c7ca796d6329d448f7f6d
Summary
mcp-atlassian supports HTTP/SSE deployment for persistent, remote, and multi-user use. In that mode, write-capable Jira and Confluence attachment flows accept caller-controlled server-local file paths and read those paths without an upload-source allowlist or base directory restriction.
An authenticated caller, or a prompt-injected agent with tool-call capability, can cause the MCP server process to read a local file it can access and attach that file into a Jira issue or Confluence page using configured Atlassian credentials.
This is distinct from the prior download-path advisory: that issue was an arbitrary file write sink. This path is upload-source local file disclosure.
Impact
Impact is local file disclosure through an authenticated Atlassian attachment write. In Docker/Kubernetes deployments that mount .env or token material into the service, exposed files may include API tokens, OAuth credentials, service configuration, or other local secrets readable by the MCP process.
The issue is bounded by tool access and Atlassian permissions: the attacker needs an MCP call path to a write tool and an issue/page where the attachment can be written. It is not direct RCE.
Severity is Medium-to-High depending on deployment:
- Medium for single-user/local stdio usage or tightly scoped tokens.
- High where HTTP/streamable deployments are shared, write tools are exposed, and the server has access to secrets or broad filesystem mounts.
Source Evidence
HTTP/multi-user deployment is first-class:
docs/http-transport.mdx:1-7describes running as a persistent HTTP service for multi-user and remote deployment.docs/http-transport.mdx:10-13lists SSE and streamable-http endpoints.docs/http-transport.mdx:88-90says both HTTP transports support per-request authentication.docs/advanced/docker-production.mdx:25-37shows Docker deployment with.env, exposed ports, andHOST=0.0.0.0.docs/advanced/docker-production.mdx:91-103shows Atlassian credentials stored in.env.src/mcp_atlassian/__init__.py:359-363defaults HTTP host to0.0.0.0unless overridden.
The Confluence upload path reads caller-chosen server-local files:
src/mcp_atlassian/servers/confluence.py:1290-1315exposesfile_pathand explicitly accepts absolute or relative paths.src/mcp_atlassian/servers/confluence.py:1356-1363passesfile_pathtoconfluence_fetcher.upload_attachment.src/mcp_atlassian/confluence/attachments.py:62-70only converts relative paths to absolute and checks existence.src/mcp_atlassian/confluence/attachments.py:77-80passes the path to_upload_attachment_direct.src/mcp_atlassian/confluence/attachments.py:477opensfile_pathfor the multipart upload.
The Jira update path can also upload caller-chosen server-local files:
src/mcp_atlassian/servers/jira.py:1564-1568exposesjira_update_issueas a write tool intoolset:jira_issues.src/mcp_atlassian/servers/jira.py:1609-1618acceptsattachmentsas a JSON array or comma-separated list of file paths.src/mcp_atlassian/servers/jira.py:1648-1674parses those file paths and adds them to the update payload.src/mcp_atlassian/jira/issues.py:1132-1137forwardsattachmentstoupload_attachments.src/mcp_atlassian/jira/attachments.py:372-389converts relative paths to absolute, checks existence, opens the path, and passes it tojira.add_attachment.
Existing controls do not authorize the upload source path:
src/mcp_atlassian/utils/decorators.py:45-72blocks writes only when read-only mode is enabled.src/mcp_atlassian/servers/main.py:276-279filters write tools out of listing only in read-only mode.src/mcp_atlassian/utils/toolsets.py:158-183currently enables all toolsets whenTOOLSETSis unset. -…
- Record
PYSEC-2026-4098- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mcp-atlassianPyPI |
before 0.22.0 | 0.22.0 |
mcp-atlassianPyPI |
before 0.22.0, plus listed versions 0.1.10.1.100.1.110.1.120.1.13 Show 45 moreShow less0.1.140.1.150.1.160.1.20.1.30.1.40.1.60.1.70.1.80.1.90.10.00.10.10.10.20.10.30.10.40.10.50.10.60.11.00.11.10.11.100.11.110.11.120.11.20.11.2a20.11.30.11.40.11.50.11.60.11.70.11.80.11.90.12.00.13.00.13.10.14.00.14.10.14.20.14.30.15.00.16.00.16.10.17.00.18.00.18.10.19.0 |
0.22.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-77257 is a high vulnerability (CVSS 8.3) in Mcp-atlassian Mcp Atlassian, published September 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.39%, the 32nd percentile. Fixed in mcp-atlassian 0.22.0.
References
github.com/sooperset/mcp-atlassian/security/advisories/GHSA-mrq8-fv7v-hhjg
github.com/sooperset/mcp-atlassian/pull/1448
github.com/sooperset/mcp-atlassian/commit/b041733473f95119dd539542a43c280737a8e460
github.com/sooperset/mcp-atlassian/releases/tag/v0.22.0
github.com/advisories/GHSA-mrq8-fv7v-hhjg
github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77257.json
nvd.nist.gov/vuln/detail/CVE-2026-77257
github.com/sooperset/mcp-atlassian
pypi.org/project/mcp-atlassian
Left out here: 29 versions and the rest of 3 source descriptions. The JSON record has them.