Authentication Bypass in mcp-atlassian HTTP Transport
The mcp-atlassian package contains an authentication bypass vulnerability (CVE-2026-77244) that allows unauthenticated network-adjacent attackers to execute tools using the operator's Jira and Confluence credentials.
CVE search metadata
CVE search record: CVE-2026-77244. Severity: critical. CVSS: 10.0. KEV: no. Product: mcp-atlassian (< 0.22.0), mcp-atlassian. Brief: Authentication Bypass in mcp-atlassian HTTP Transport. Brief link: https://feed.craftedsignal.io/briefs/2026-09-mcp-atlassian-auth-bypass/
CVE search record: CVE-2026-27825. Severity: critical. CVSS: 9.0. EPSS: 12.71%. KEV: no. Product: mcp-atlassian (< 0.22.0), mcp-atlassian. Brief: Authentication Bypass in mcp-atlassian HTTP Transport. Brief link: https://feed.craftedsignal.io/briefs/2026-09-mcp-atlassian-auth-bypass/
What's new
- 1. added coverage for mcp-atlassian Sep 23, 01:58 via ghsa
- 2. added coverage for mcp-atlassian (< 0.22.0) Sep 23, 01:58 via ghsa
- 3. added coverage for mcp-atlassian (< 0.22.0) Sep 23, 01:58 via ghsa
- 4. added detection rule: Detect Unauthorized MCP Tool Execution Attempt Sep 23, 01:58 via ghsa
- 5. added coverage for mcp-atlassian (< 0.22.0) Sep 23, 01:57 via ghsa
The mcp-atlassian Python package is vulnerable to a critical authentication bypass (CVE-2026-77244) due to improper validation in the AtlassianOpaqueTokenVerifier utility. The implementation of verify_token() explicitly accepts any non-empty string as a valid credential. Furthermore, the mcp-atlassian HTTP transport defaults to disabled OAuth proxy authentication and fails to reject requests lacking an Authorization header.
When deployed in the standard pattern (storing JIRA_API_TOKEN or CONFLUENCE_API_TOKEN in environment variables), the MCP server fails to challenge unauthenticated requests. Instead, it proceeds to invoke Jira/Confluence tool handlers using the server-side environment variables. An attacker with network reach to the MCP server can send arbitrary requests - or no credentials at all - to perform unauthorized operations on the operator's Atlassian instance. This vulnerability is significant because it grants attackers the full API privileges of the server operator, including read and write access to all accessible Jira issues and Confluence pages.
Attack Chain
- Attacker performs network discovery to identify an
mcp-atlassianHTTP transport instance reachable on the network (e.g., via default Docker port mappings or misconfigured cloud load balancers). - Attacker crafts a JSON-RPC request targeting the
/mcpendpoint with the desired tool execution parameters (e.g.,jira_get_issueorjira_add_comment). - The request is transmitted to the server without an
Authorizationheader, or with a dummy "Bearer" token. UserTokenMiddleware._parse_auth_headerprocesses the request; seeing no valid client token, it passes the request context to the internal handlers without rejection.- The
AtlassianOpaqueTokenVerifierreceives the request; if a dummy token is provided, it is accepted by the logic that validates only that the string is non-empty. - The
JiraFetcherorConfluenceFetcherdetects the absence of a user-supplied token in the scope state and initiatesJiraConfig.from_env(). - The server retrieves the operator's
JIRA_API_TOKENorCONFLUENCE_API_TOKENfrom the process environment variables. - The tool execution is performed against the Atlassian cloud backend using the operator's identity, resulting in data exfiltration, unauthorized modification, or persistent access creation.
Impact
Successful exploitation grants an attacker full read and write access to the operator's Jira and Confluence instances. Because all API calls are made using the operator's legitimate credentials, the attacker's actions appear as authenticated operator activity in Atlassian audit logs, facilitating anti-forensics and shifting blame to the victim. Furthermore, attackers can leverage the MCP server to pivot, exfiltrate sensitive data stored in attachments or documentation, and create persistent backdoors via Jira webhooks or automation rules.
Recommendation
- Upgrade the
mcp-atlassianpackage to version 0.22.0 or later immediately to patch CVE-2026-77244. - For deployments not using OAuth proxy, implement strict network-level access control (e.g., firewall rules or mTLS) to restrict access to the MCP server to authorized users only.
- If version 0.22.0 is not immediately available, disable public exposure of the HTTP transport by binding the service to
127.0.0.1and utilizing a secure reverse proxy (e.g., Nginx or Traefik) that enforces authentication before forwarding traffic to the MCP server. - Audit Jira and Confluence audit logs for anomalous tool execution patterns or unauthorized modification of issues and automation rules originating from the host IP of the MCP server.
Immediate actions
Upgrade mcp-atlassian to 0.22.0 or higher
Threat Hunt
Search logs for JSON-RPC method calls to Jira/Confluence tools with missing or arbitrary Authorization headers
Data: Application logs from the MCP server HTTP transport
Mitigations
Bind MCP server to 127.0.0.1 and restrict access via reverse proxy
CVE-2026-77244
Detection coverage 1
Detect Unauthorized MCP Tool Execution Attempt
highDetects exploitation attempts against CVE-2026-77243 where a client attempts to call a tool that was not authorized via ENABLED_TOOLS or TOOLSETS configuration.
Detection queries are available on the platform. Get full rules →