Skip to main content

MCP Atlassian CVE-2026-77246

| EUVDEUVD-2026-84771 HIGH
Path Traversal (CWE-22)
2026-09-22 GitHub_M GHSA-wv8v-v4c5-v75j
8.6
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach HTTP-mode MCP endpoint unauthenticated
  2. Delivery
    Inject X-Atlassian-Confluence-Url header to attacker host
  3. Exploit
    Invoke upload_attachment with server-local file_path
  4. Execution
    MCP reads unvalidated path (no validate_safe_path)
  5. Impact
    File exfiltrated to attacker endpoint

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the server deployed in HTTP transport mode (streamable-http or sse) with READ_ONLY_MODE=false; in that mode a request lacking an Authorization identity but carrying service headers (X-Atlassian-Confluence-Url / X-Atlassian-Confluence-Personal-Token) is accepted and user_atlassian_auth_type is set to 'pat', bypassing authentication. The attacker-selected hostname must be a public attacker host or one permitted by MCP_ALLOWED_URL_DOMAINS (SSRF filter only blocks localhost, RFC1918, and some metadata hosts). Limiting factors: the default/local stdio transport is not exposed to this; READ_ONLY_MODE=true blocks the write-path tool; and only files readable by the MCP process user can be exfiltrated. Versions < 0.22.0 only.

Impact

Signals are moderately concerning but not screaming priority. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N, base 8.6) describes a remote, unauthenticated, low-complexity attack with high confidentiality impact and a scope change - consistent with the GHSA advisory's claim that no Authorization header is required in HTTP transport mode. Publicly available exploit code exists (confirmed via a live Docker-based PoC in the advisory), which raises practical risk. However, EPSS is low at 0.30% (23rd percentile), indicating no signal of broad automated exploitation, and the CVE is NOT on CISA KEV, so there is no confirmed active exploitation. A critical qualifier tempers the raw score: exploitation is gated on a specific NON-DEFAULT deployment posture - HTTP transport mode (streamable-http or sse) with READ_ONLY_MODE=false. Many real deployments run the stdio transport (typical for local IDE/agent integrations), which is not exposed to remote header-injection. Net: a genuine confidentiality flaw with a working PoC, but real-world urgency is bounded by the deployment condition and the low EPSS - treat as a real priority only for HTTP-exposed instances, otherwise moderate.

Exploit ScenarioDerived

An organization runs mcp-atlassian in HTTP transport mode (streamable-http/sse) with READ_ONLY_MODE=false and no enforced Authorization identity. A remote attacker sends a request with attacker-controlled X-Atlassian-Confluence-Url (pointing at their own public host or an MCP_ALLOWED_URL_DOMAINS-permitted host) and invokes confluence_upload_attachment (or the Jira variant) with file_path=/etc/passwd, ~/.env, SSH keys, or cloud credentials, causing the MCP process to read and POST that file to the attacker's endpoint. A live Docker-based proof-of-concept is publicly documented in the GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Sep 28, 2026

Unauthenticated server-local file exfiltration in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 allows a remote caller to read any file accessible to the MCP process and have it uploaded to an attacker-controlled endpoint. The issue affects only deployments running the HTTP transports (streamable-http or sse) with READ_ONLY_MODE=false, where a request that carries X-Atlassian-Confluence-Url and X-Atlassian-Confluence-Personal-Token but no Authorization header is accepted as a 'pat' identity, so the attacker-chosen Atlassian URL is used to build the attachment client and the confluence_upload_attachment (or Jira attachment) tool accepts an arbitrary server-side file_path. CVSS 3.1 rates it 8.6 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N) with confidentiality-only impact, a public Docker-based proof of concept was confirmed by the reporter so publicly available exploit code exists, and EPSS is low at 0.30% (23rd percentile) with no confirmed actively exploited (CISA KEV) status; version 0.22.0 fixes the flaw.

Earlier versions of this analysis (1)
v1 Sep 22, 2026 - 19:30 CVSS 7.4

An unauthenticated remote attacker can coerce an HTTP-transport deployment of the MCP Atlassian server (sooperset/mcp-atlassian, all versions prior to 0.22.0) into exfiltrating server-local files by abusing a caller-supplied file_path together with attacker-controlled Atlassian service headers such as X-Atlassian-Confluence-Url. When the server runs with READ_ONLY_MODE=false and the header points to a public host or one permitted by MCP_ALLOWED_URL_DOMAINS, invoking confluence_upload_attachment (or the Jira attachment variant) causes the MCP process to read the referenced local file and transmit it to the attacker's chosen attachment endpoint. Impact is limited to confidentiality of files readable by the MCP process user; no public exploit code has been identified at time of analysis, and exploitation is blocked entirely on stdio deployments, in read-only mode, or where the destination allowlist is restricted to trusted hosts.

RemediationAI

Upgrade to MCP Atlassian 0.22.0 (vendor-released patch: 0.22.0), which confines upload sources with validate_safe_path(), adds SSRF redirect validation and DNS pinning in the Confluence client, and refuses downloads into the working-directory root; the fix is visible in PR https://github.com/sooperset/mcp-atlassian/pull/1448 and commit b041733473f95119dd539542a43c280737a8e460, with the advisory at https://github.com/sooperset/mcp-atlassian/security/advisories/GHSA-wv8v-v4c5-v75j. If immediate upgrade is not possible, the highest-value compensating control is to stop exposing the HTTP transports: run the server over stdio (the default) so the header-based identity path is unreachable, at the cost of losing shared multi-client deployment. Alternatively set READ_ONLY_MODE=true, which removes the upload write-path tools entirely but also disables all legitimate write operations. Where HTTP transport is mandatory, terminate it behind a reverse proxy that strips any client-supplied X-Atlassian-* headers and injects only trusted values, require and enforce a real Authorization identity, and configure MCP_ALLOWED_URL_DOMAINS to a strict allowlist containing no attacker-reachable or Docker-internal hostnames - noting that none of these fully closes the arbitrary file_path read on their own. Finally, run the MCP process as an unprivileged account with no access to SSH keys, .env files, or cloud credential stores, and restrict its filesystem view (container read-only root or a dedicated mount namespace) to limit what any residual path-traversal read could expose.

Affected VersionsENISA

mcp-atlassian < 0.22.0

Affected Packages

pypi mcp-atlassian fix: 0.22.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

MCP Atlassian is a Python Model Context Protocol server that brokers Confluence and Jira operations to MCP clients, and it can be run over stdio or over HTTP transports (streamable-http/sse) so that many clients share one process. In the vulnerable design the HTTP middleware in src/mcp_atlassian/servers/main.py extracts X-Atlassian-Confluence-Url and X-Atlassian-Confluence-Personal-Token from inbound request headers and, when no Authorization header is present, sets user_atlassian_auth_type to 'pat' - effectively a header-driven authentication/identity bypass (CVSS PR:N confirms no credentials are needed). The attacker-supplied URL is then validated by validate_url_for_ssrf in src/mcp_atlassian/utils/urls.py, which only blocks localhost, RFC 1918 ranges and a small set of cloud metadata hostnames, so a public attacker hostname or any host permitted by MCP_ALLOWED_URL_DOMAINS passes; that URL is injected as url= into ConfluenceConfig in src/mcp_atlassian/servers/dependencies.py, constructing a fetcher pointed at the attacker's server. The tool argument file_path is forwarded unsanitized from src/mcp_atlassian/servers/confluence.py into confluence_fetcher.upload_attachment(); in src/mcp_atlassian/confluence/attachments.py the path is converted with os.path.abspath() and only checked for existence - validate_safe_path(), which is already applied to download paths, is never called - before the file is opened and sent. This is the CWE-22 path-traversal/arbitrary-file-read class compounded with SSRF-style URL redirection: the server is induced to read a local file outside any permitted directory and transmit it to a destination the caller controls. A similar code path exists for Jira attachments in src/mcp_atlassian/jira/attachments.py. The upstream fix adds validate_safe_path() confinement to the upload source, an SSRF redirect validation hook plus a DNS-pinning adapter (to close the validate-then-reconnect TOCTOU/rebinding window) in the Confluence client, a refusal to write downloads into the CWD root, and an always-ANDed spaces allowlist in search.

Know when Mcp Atlassian gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY HIGH
NVD 8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
vuln.today AI 8.6 HIGH

HTTP-mode header bypass means no auth (PR:N), network low-complexity; arbitrary server-local file read exfiltrated off-host gives C:H with scope change (S:C), no integrity/availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

3
CVSS changed
Sep 28, 2026 - 14:37 NVD
7.4 (HIGH) 8.6 (HIGH)
Patch available
Sep 22, 2026 - 20:18 EUVD
CVE Published
Sep 22, 2026 - 18:51 cve.org
HIGH 7.4

DescriptionNVD

MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, an HTTP transport deployment with READ_ONLY_MODE=false accepts a request without an Authorization identity and permits attacker-controlled Atlassian service headers, including X-Atlassian-Confluence-Url, to select a public attacker hostname or one allowed by MCP_ALLOWED_URL_DOMAINS. A caller can then invoke confluence_upload_attachment or the Jira attachment variant in src/mcp_atlassian/jira/attachments.py with a server-local file_path and cause the MCP process to send the file to the selected attachment endpoint. This issue is fixed in version 0.22.0.

Technical POC Analysis

CWE-22 (path traversal), assigned by the CVE; the advisory's own PoC header labels it CWE-200.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

MCP Atlassian (sooperset/mcp-atlassian) deployments exposed over HTTP transports are vulnerable to unauthenticated remote file exfiltration, allowing an outside caller to read any file the MCP process can access - including stored Atlassian credentials and configuration data - and send it to an attacker-controlled endpoint. Only installations running the streamable-http or sse transports with READ_ONLY_MODE disabled are exposed, so leadership should prioritize inventorying those network- or internet-reachable instances, since stolen secrets could be used to pivot into the organization's Atlassian environment. Publicly available exploit code exists, though there is no confirmed active exploitation at this time.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche open-source MCP server for Atlassian, emerging-tech footprint
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

63
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2026-77274 HIGH POC
8.8 Sep 22

Server-side request forgery in MCP Atlassian (the Model Context Protocol server for Confluence and Jira) prior to 0.22.0

CVE-2026-77243 HIGH POC
8.8 Sep 22

MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 applies its ENABLED_TOOLS and TOOLSETS least-privilege filters onl

CVE-2026-77262 HIGH POC
8.6 Sep 22

Path traversal in MCP Atlassian releases prior to 0.22.0 lets a caller of the confluence_upload_attachment MCP tool read

CVE-2026-77248 HIGH POC
8.6 Sep 22

Unauthenticated arbitrary file read in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 lets a remote network calle

CVE-2026-77255 HIGH POC
8.6 Sep 22

Arbitrary local file read leading to data exfiltration affects sooperset's MCP Atlassian server (mcp-atlassian) prior to

CVE-2026-77261 HIGH POC
8.5 Sep 22

Server-side request forgery in MCP Atlassian prior to 0.22.0 lets an attacker who controls or has already compromised th

CVE-2026-77271 HIGH POC
8.3 Sep 22

MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 lets a low-privileged authenticated MCP caller write attacker-chos

CVE-2026-77267 HIGH POC
8.3 Sep 22

Server-side request forgery in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 allows a low-privileged authenticat

CVE-2026-77257 HIGH POC
8.3 Sep 22

Arbitrary local file read in MCP Atlassian (mcp-atlassian) prior to 0.22.0 allows an authenticated MCP caller who can re

CVE-2026-77260 HIGH POC
8.3 Sep 22

Arbitrary server-local file read and exfiltration in MCP Atlassian (sooperset/mcp-atlassian) prior to 0.22.0 lets an aut

CVE-2026-77247 HIGH POC
8.3 Sep 22

Path traversal in the MCP Atlassian server (mcp-atlassian) prior to 0.22.0 allows an authenticated MCP client to read fi

CVE-2026-77251 HIGH POC
8.3 Sep 22

Information disclosure in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 allows an authenticated caller of the MC

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy