CVE-2026-77255: mcp-atlassian: arbitrary file read/exfil via attachments

GHSA-2xj6-xx86-cwwcHIGHCISA: TRACK*
Published September 22, 2026
CISO Take

mcp-atlassian (pip) before 0.22.0 lets an AI agent pass arbitrary absolute paths to the update_issue attachments parameter, so the privileged MCP process reads any file it can access and uploads it to a Jira ticket. This is a confused-deputy flaw: a sandboxed agent, or an attacker steering one through prompt injection, can steal the MCP server's own environment (including JIRA_API_TOKEN via /proc/self/environ), SSH keys and agent config files holding other service tokens. Exploitation likelihood is modest today (EPSS 0.4%, top 67%, no public exploit, no Nuclei template, not in KEV, SSVC Track*), and only one downstream dependent is tracked, but the PoC is trivial and the package has 38 other CVEs, which signals weak security hygiene. Upgrade to 0.22.0 now, rotate any tokens that were in the MCP server's environment if untrusted agents or content could reach it, and review Jira attachment history for unexpected system files.

Sources:NVDGitHub AdvisoryEPSSATLASCISA SSVC

What is the risk?

High (CVSS 8.6, scope changed, confidentiality impact only). No authentication is needed at the vulnerability level, and exploitation is a single tool call with a file path. Real-world risk depends on who can drive the agent: any agent exposed to untrusted input (tickets, emails, web content) can be hijacked via indirect prompt injection into triggering the exfiltration. Exploitation signals are low at present (EPSS 0.4%, no public exploit, not in KEV), so urgency is high-priority patching rather than emergency response. The blast radius is every secret and file readable by the MCP server's OS user.

How does the attack unfold?

Initial Access
Attacker gains control of agent actions via a restricted agent account or indirect prompt injection in content the agent processes.
AML.T0051.001
Tool Invocation
The agent calls update_issue with attachments set to absolute paths such as /proc/self/environ.
AML.T0053
Collection
The privileged MCP server reads the files without path validation, bypassing the agent's sandbox.
AML.T0037
Exfiltration
Files are uploaded as Jira attachments, exposing the JIRA_API_TOKEN and other secrets for credential theft and lateral movement.
AML.T0086

What systems are affected?

PackageEcosystemVulnerable RangePatched
MCP Atlassianpip< 0.22.00.22.0
2 dependents85% patched~4d to patchFull package profile →

Do you use MCP Atlassian? You're affected.

How severe is it?

CVSS 3.1
8.6 / 10
EPSS
0.5%
chance of exploitation in 30 days
Higher than 40% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
○CISA SSVC: Public PoC
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRNone
UINone
SChanged
CHigh
INone
ANone

What should I do?

1 step
  1. 1) Upgrade mcp-atlassian to 0.22.0 or later (pip install -U mcp-atlassian). 2) Rotate JIRA_API_TOKEN and any secrets present in the MCP server's environment or readable by its user if the server ran an affected version with untrusted agents or inputs. 3) Run the MCP server as a dedicated low-privilege user or in a container with a minimal filesystem and no mounted secrets or home directories. 4) Until patched, disable or deny the update_issue tool's attachments parameter at the MCP client or gateway level, and require human approval for write tools. 5) Detection: audit Jira issues for attachments named environ, config.yaml, id_rsa, .env or similar, review MCP tool-call logs for update_issue calls with absolute paths or ../ sequences, and monitor Jira token use from unexpected IPs.

What does CISA's SSVC say?

DecisionTrack*
Exploitationpoc
AutomatableNo
Technical Impactpartial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Art. 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Mechanisms to respond to and recover from unknown risks
OWASP LLM Top 10
LLM02-Sensitive Information DisclosureLLM06-Excessive Agency

Frequently Asked Questions

What is CVE-2026-77255?

mcp-atlassian (pip) before 0.22.0 lets an AI agent pass arbitrary absolute paths to the update_issue attachments parameter, so the privileged MCP process reads any file it can access and uploads it to a Jira ticket. This is a confused-deputy flaw: a sandboxed agent, or an attacker steering one through prompt injection, can steal the MCP server's own environment (including JIRA_API_TOKEN via /proc/self/environ), SSH keys and agent config files holding other service tokens. Exploitation likelihood is modest today (EPSS 0.4%, top 67%, no public exploit, no Nuclei template, not in KEV, SSVC Track*), and only one downstream dependent is tracked, but the PoC is trivial and the package has 38 other CVEs, which signals weak security hygiene. Upgrade to 0.22.0 now, rotate any tokens that were in the MCP server's environment if untrusted agents or content could reach it, and review Jira attachment history for unexpected system files.

Is CVE-2026-77255 actively exploited?

No confirmed active exploitation of CVE-2026-77255 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-77255?

1) Upgrade mcp-atlassian to 0.22.0 or later (pip install -U mcp-atlassian). 2) Rotate JIRA_API_TOKEN and any secrets present in the MCP server's environment or readable by its user if the server ran an affected version with untrusted agents or inputs. 3) Run the MCP server as a dedicated low-privilege user or in a container with a minimal filesystem and no mounted secrets or home directories. 4) Until patched, disable or deny the update_issue tool's attachments parameter at the MCP client or gateway level, and require human approval for write tools. 5) Detection: audit Jira issues for attachments named environ, config.yaml, id_rsa, .env or similar, review MCP tool-call logs for update_issue calls with absolute paths or ../ sequences, and monitor Jira token use from unexpected IPs.

What systems are affected by CVE-2026-77255?

This vulnerability affects the following AI/ML architecture patterns: agent frameworks, MCP servers, tool-calling agents, developer assistant integrations.

What is the CVSS score for CVE-2026-77255?

CVE-2026-77255 has a CVSS v3.1 base score of 8.6 (HIGH). The EPSS exploitation probability is 0.46%.

What is the AI security impact?

Affected AI Architectures

agent frameworksMCP serverstool-calling agentsdeveloper assistant integrations

MITRE ATLAS Techniques

AML.T0037Data from Local System
AML.T0053AI Agent Tool Invocation
AML.T0083Credentials from AI Agent Configuration
AML.T0086Exfiltration via AI Agent Tool Invocation
AML.T0098AI Agent Tool Credential Harvesting

Compliance Controls Affected

EU AI Act: Art. 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3
OWASP LLM Top 10: LLM02, LLM06

What are the technical details?

Original Advisory

### Summary A critical Confused Deputy (Arbitrary File Read & Exfiltration) vulnerability in the Atlassian MCP server (Python) allows an AI agent to exfiltrate sensitive host files and environment secrets. By providing absolute system paths to the attachments parameter of the update_issue tool, an agent can force the privileged MCP process to read and upload any file it has access to—including its own environment variables and host configuration—directly to a Jira ticket. ### Details The vulnerability is located in the update_issue tool handler. The attachments parameter accepts a list of file paths that are passed directly to the Jira API's upload method without any sanitization or validation. Specifically, the implementation fails to: 1.  Restrict paths to a safe workspace: It accepts absolute paths starting with /. 2.  Prevent directory traversal: It does not filter for ../ sequences. 3.  Validate ownership: It allows the process to read system-level files (like /proc/self/environ) that the calling agent is normally forbidden from accessing due to sandbox restrictions. Because the MCP server typically runs with higher privileges than the AI agent (holding the JIRA_API_TOKEN and having wider filesystem access), it acts as a "Confused Deputy," performing exfiltration on behalf of a restricted agent. ### PoC To reproduce the vulnerability in an environment where the agent is sandboxed (e.g., as a restricted Unix user) but the MCP server has host-level access: 1.  Exfiltrate MCP Secrets:     The agent calls the update_issue tool with the following payload: { "issue_key": "SECURITY-1", "attachments": ["/proc/self/environ"] }     Result: The MCP server reads its own process environment—containing the JIRA_API_TOKEN and other sensitive keys in plain text—and attaches it to the Jira issue. 2.  Exfiltrate Host Configuration:     The agent calls the tool to target global assistant settings: { "issue_key": "SECURITY-1", "attachments": ["/home/hermes/.hermes/config.yaml"] }     Result: The host's global configuration file (containing tokens for GitLab, Slack, and other services) is successfully exfiltrated to the cloud. ### Impact *   Critical Credential Theft: Immediate exposure of the JIRA_API_TOKEN and any other secrets injected into the MCP server's environment. *   Arbitrary File Access: Total exfiltration of any data the host user running the MCP server can read (SSH keys, databases, local source code). *   Privilege Escalation & Lateral Movement: Attackers can move from a restricted AI sandbox to full host-system control by stealing tokens or configuration files.

Exploitation Scenario

An attacker plants a malicious instruction in a Jira comment, a support email, or a web page that a company's AI assistant processes. The injected prompt tells the agent to call update_issue on a ticket with attachments set to /proc/self/environ and the agent's config file. The mcp-atlassian server, running with higher privileges than the sandboxed agent, reads the files and uploads them to the Jira ticket. The attacker, or anyone with ticket access, downloads the attachment, extracts the Jira token and other service credentials, and uses them to move laterally into Jira, GitLab, Slack and the host.

Weaknesses (CWE)

CWE-22 — Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'): The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

  • [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
  • [Architecture and Design] For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Timeline

Published
September 22, 2026
Last Modified
September 26, 2026
First Seen
September 23, 2026

Related Vulnerabilities