Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft callback URL with script in error param
-
DeliveryLure operator mid-OAuth-setup to open it
-
ExploitUnescaped error interpolated into response HTML
-
ExecutionScript executes in operator browser
-
ImpactSteal session/tokens in browser context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a deployment uses MCP Atlassian's OAuth authentication setup flow and that a targeted user is actively completing that flow when they open the attacker's crafted authorization callback (the 'error' query parameter carrying the injected markup). Limiting factors: user interaction is mandatory (victim must visit/complete the malicious callback, UI:R), impact is confined to the victim's browser context (C:L/I:L, no server-side code execution or Atlassian data-plane access), and the OAuth setup path must be in use - deployments configured with token/PAT or basic auth rather than the interactive OAuth flow are not exposed. Affects only versions prior to 0.22.0. |
| Impact | This is a genuine but modest-severity issue. The CVSS 5.4 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N) is internally consistent with a reflected XSS: unauthenticated at the vulnerable endpoint but requiring a victim to complete the OAuth setup flow (UI:R), yielding only partial confidentiality/integrity impact (browser-context script execution, not server compromise). No EPSS score, no CISA KEV listing, and no public exploit code are provided, so exploitation is theoretical at this time. There is no SSVC framing in the input. The practical risk is bounded by the narrow trigger surface: the OAuth setup/authorization callback flow of a niche, self-hosted developer tool that a targeted user must actively be completing at the moment of attack. This is a real-but-low-priority hygiene fix rather than an urgent, mass-exploitable flaw; C:L/I:L means it steals session state or acts in the browser context of one operator, not the Atlassian data plane. Note the provided PR#1448 diff hunks show attachment path-hardening, SSRF redirect/DNS pinning, and CQL spaces-filter fixes - sibling issues in the same batched release - and do NOT show the oauth_setup.py escaping change itself, so the specific fix is confirmed only by the advisory/description, not by the shown source evidence. |
| Exploit ScenarioDerived | An attacker crafts a malicious OAuth authorization callback URL whose 'error' query parameter contains HTML/JavaScript markup, then lures an operator who is completing the MCP Atlassian OAuth setup into visiting it. Because the error value is interpolated into the callback response HTML without escaping, the injected script executes in the operator's browser, enabling session/token theft or UI manipulation in that browser context. No public exploit code is identified at time of analysis, but the injection is trivial to construct given the described sink. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Reflected cross-site scripting in MCP Atlassian versions prior to 0.22.0 lets unauthenticated remote attackers inject markup or script through the OAuth error query parameter, which the CallbackHandler._send_response method in oauth_setup.py interpolates into an HTML page without escaping (CWE-79). Exploitation requires a deployment that uses the interactive OAuth setup flow and a targeted user who is actively completing that flow and opens the attacker's crafted authorization callback, which is why the assessed impact is confined to the victim's browser context (CVSS 5.4, C:L/I:L, UI:R) with no server-side code execution or Atlassian data-plane access. No public exploit code or confirmed active exploitation has been identified at time of analysis, and the issue is fixed in version 0.22.0.
RemediationAI
Upgrade mcp-atlassian to version 0.22.0 or later using the vendor release at https://github.com/sooperset/mcp-atlassian/releases/tag/v0.22.0, which corresponds to the fix in commit b041733473f95119dd539542a43c280737a8e460 / PR 1448; the advisory at https://github.com/sooperset/mcp-atlassian/security/advisories/GHSA-g2r2-3j32-j27x should be consulted for the full patched build. If upgrading immediately is not possible, the most effective compensating control is to avoid the interactive OAuth setup path entirely and configure the server with a token/PAT or basic auth instead, which removes the vulnerable callback page from the attack surface at the cost of losing the browser-based OAuth onboarding experience; alternatively, keep the OAuth setup callback bound to loopback and perform the setup only on a trusted workstation, and never open authorization error or callback links received from untrusted sources. Note that binding to loopback reduces exposure but does not fix the underlying missing output encoding, so the vendor upgrade remains the primary and required remediation.
Affected VersionsENISA
Affected Packages
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 Model Context Protocol server that exposes Atlassian Confluence and Jira operations as MCP tools; it ships an OAuth setup helper (oauth_setup.py) that runs a local callback endpoint to receive the authorization response during the interactive OAuth flow. The CallbackHandler._send_response method builds an HTML page by concatenating the raw OAuth error query parameter without HTML-entity encoding, which is the classic CWE-79 root cause: attacker-controlled input crosses into an HTML output context and can break out of its intended text position to add markup or script. Because the callback page is rendered in the browser of the operator performing the setup, script executes in that user's browser context, scoped to the callback origin (typically loopback), so the impact is limited to confidentiality and integrity of that browser session rather than the MCP server or Atlassian tenant. The CPE entry cpe:2.3:a:sooperset:mcp-atlassian:*:*:*:*:*:*:*:* confirms the affected component is the sooperset/mcp-atlassian project across all versions before the patched release.
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
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Reflected XSS reachable network-side without auth but requiring the victim to complete the OAuth callback (UI:R); impact stays in the browser context, so C:L/I:L/A:N and S:U.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, the OAuth error query parameter is passed to CallbackHandler._send_response in oauth_setup.py and interpolated into an HTML page without escaping. A crafted authorization callback can inject markup or script that executes in the browser of a user completing the OAuth flow. This issue is fixed in version 0.22.0.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Mcp Atlassian
View allServer-side request forgery in MCP Atlassian (the Model Context Protocol server for Confluence and Jira) prior to 0.22.0
MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 applies its ENABLED_TOOLS and TOOLSETS least-privilege filters onl
Path traversal in MCP Atlassian releases prior to 0.22.0 lets a caller of the confluence_upload_attachment MCP tool read
Unauthenticated arbitrary file read in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 lets a remote network calle
Arbitrary local file read leading to data exfiltration affects sooperset's MCP Atlassian server (mcp-atlassian) prior to
Unauthenticated server-local file exfiltration in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 allows a remote
Server-side request forgery in MCP Atlassian prior to 0.22.0 lets an attacker who controls or has already compromised th
MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 lets a low-privileged authenticated MCP caller write attacker-chos
Server-side request forgery in MCP Atlassian (sooperset/mcp-atlassian) before 0.22.0 allows a low-privileged authenticat
Arbitrary local file read in MCP Atlassian (mcp-atlassian) prior to 0.22.0 allows an authenticated MCP caller who can re
Arbitrary server-local file read and exfiltration in MCP Atlassian (sooperset/mcp-atlassian) prior to 0.22.0 lets an aut
Path traversal in the MCP Atlassian server (mcp-atlassian) prior to 0.22.0 allows an authenticated MCP client to read fi
EUVD-2026-84749
GHSA-g2r2-3j32-j27x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB