CVE-2026-21589 is a critical, unauthenticated file-access vulnerability affecting eight Atlassian Data Center products: Bitbucket, Confluence, Jira Software, Jira Service Management, Bamboo, Crowd, Crucible, and Fisheye. Atlassian published the advisory on October 5, 2026, classifying it under CWE-552 (Files or Directories Accessible to External Parties) and assigning it a CVSS v4.0 base score of 9.3 (Critical), vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:H. Atlassian notes this is its own internal assessment and advises customers to evaluate severity for their own environment — a caveat worth repeating since Atlassian-assigned CVSS scores on Data Center advisories have occasionally been revised after publication.
The flaw allows an attacker with no credentials and only network access to read specific files from within the affected application’s web root, provided they already know the exact file name and path — the vulnerability does not provide directory listing or enumeration. Atlassian Cloud products are unaffected (already patched; no customer action required there); the exposure is confined to self-managed Data Center deployments, plus the standalone Crucible and Fisheye products. Public technical analysis from watchTowr and a public proof-of-concept were available within 24 hours of Atlassian’s disclosure, and CISA added the CVE to its Known Exploited Vulnerabilities catalog on 2026-10-15 with a federal remediation deadline of 2026-10-18 — both strong signals that this moved from disclosure to active exploitation unusually fast.
Affected Versions
Atlassian’s advisory states that all versions of the listed Data Center products released before the fixed versions below are affected. There is no “first affected version” floor published — treat any instance not yet on a listed fixed version (or later) as vulnerable, including unsupported/EOL releases.
| Product | Fixed version(s) |
|---|---|
| Bitbucket Data Center | 9.4.26, 10.2.8, or 10.5.1 |
| Confluence Data Center | 9.2.26 or 10.2.19 |
| Jira Software Data Center | 9.12.40, 10.3.26, or 11.3.12 |
| Jira Service Management Data Center | 5.12.40, 10.3.26, or 11.3.12 |
| Bamboo Data Center | 10.2.24 or 12.1.12 |
| Crowd Data Center | 6.3.7, 7.0.3, 7.1.7, or 7.2.4 |
| Crucible | 4.9.15 |
| Fisheye | 4.9.15 |
Atlassian Cloud instances of these products are already remediated server-side; this table applies only to self-hosted/Data Center deployments.
Vulnerability Details
The vulnerability sits in Atlassian’s shared web-resource handling code, used across the affected Data Center products to serve static and dynamic resources from the web application. According to watchTowr’s public technical analysis (published October 6, 2026, the day after Atlassian’s advisory), the request-processing logic fails to correctly handle double-colon (::) sequences, which can act as path separators during resource resolution. By embedding traversal sequences incorporating these double-colon patterns — alongside the conventional ../ traversal syntax and its URL-encoded variants — an unauthenticated attacker can cause the resource loader to resolve a path outside the directory it was intended to serve from, returning the contents of an arbitrary file within the web application’s root to the requester.
Two constraints limit the blast radius compared to a theoretical worst case:
- No enumeration. The vulnerability returns file contents for a path the attacker specifies; it does not expose directory listings. An attacker needs out-of-band knowledge of exact file names and paths (e.g.,
WEB-INF/classes/<product>.properties,web.xml, or other well-known configuration file locations for the specific product and version). - No confirmed container escape. watchTowr’s testing was unable to escape the Tomcat servlet context — reads stayed confined to the web application root rather than reaching arbitrary filesystem locations outside it. That still leaves a meaningful set of sensitive, well-known files inside the web root exposed, including application configuration and credential files.
The most concretely documented exploitation chain, per watchTowr/Rapid7 reporting, targets Crowd: reading WEB-INF/classes/crowd.properties from a Crowd instance integrated with Jira exposed application-level credentials. Those credentials were then used to create a new user account and add it to the jira-administrators group — turning an information-disclosure bug into full Jira administrative takeover in environments where Crowd and Jira are integrated. Atlassian notes that Crowd’s IP allowlisting feature can block this specific escalation path, though it does not close the underlying file-read vulnerability itself.
Exploitation in the Wild
The disclosure-to-exploitation timeline here is notably compressed:
- October 5, 2026: Atlassian publishes the security advisory.
- October 6, 2026: watchTowr publishes a technical write-up describing the double-colon path traversal mechanism, along with a public Python proof-of-concept.
- October 7–8, 2026: Rapid7 publishes its own analysis and releases unauthenticated detection checks for Jira Software Data Center; a public Nuclei template from ProjectDiscovery also becomes available.
- Within hours of the technical write-ups going public, multiple sources reported attack attempts against internet-facing instances — consistent with the low barrier to exploitation once a working PoC and scanning template exist.
- October 15, 2026: CISA adds CVE-2026-21589 to its KEV catalog, with a federal civilian remediation deadline of October 18, 2026.
Atlassian’s own advisory language is notably hedged: it states the company “cannot confirm” whether any given customer’s instance has been affected, and that its investigation of Cloud “has not found evidence of exploitation” (Cloud is not vulnerable regardless, since it’s already patched). This is a standard vendor disclaimer rather than a denial of broader exploitation — the CISA KEV listing is the authoritative confirmation that exploitation has occurred in the wild, consistent with KEV’s inclusion criteria. No named threat actor group or campaign has been publicly attributed to this activity as of this writing; given how quickly public PoCs and scanning templates circulated, opportunistic mass scanning by unattributed actors is the more likely current picture than a single coordinated campaign, but we could not verify actor attribution either way.
Patch and Remediation
- Patch immediately to the fixed version listed for your product in the table above. Given the KEV deadline and public PoC availability, this should be treated as an emergency change rather than routine patch-cycle work.
- If immediate patching isn’t possible, take the instance offline from the internet. Atlassian’s own guidance states this explicitly — removing external network access is the most reliable interim mitigation, and applies even to instances that require user authentication for normal use, since this bug requires none.
- Apply a WAF/reverse-proxy rule blocking request paths matching Atlassian’s published regex, which targets
..sequences adjacent to/,\, or::, including URL-encoded variants (verify your WAF correctly decodes before matching, including doubly-encoded sequences). - For Confluence, Jira Service Management, Jira Software, Bamboo, and Crowd: Atlassian provides a Tomcat
RewriteValve-based mitigation. Back up the instance first, then on every cluster node: shut the node down, enable the RewriteValve inserver.xml, add the vendor-suppliedrewrite.configtoWEB-INF, and restart. This must be applied uniformly across every node — a single unpatched/unmitigated node in a cluster leaves the whole deployment exposed. - For Bitbucket specifically: apply the vendor-supplied
urlrewrite.xmlrule at the top of<installation-directory>/app/WEB-INF/urlrewrite.xmlon all nodes and mirrors, after backing up, then restart. - Treat the WAF/RewriteValve/urlrewrite mitigations as temporary and incomplete — Atlassian and Rapid7 both characterize them as reducing but not eliminating risk; they are not a substitute for upgrading to a fixed version.
- After patching or mitigating, hunt for prior compromise rather than assuming the absence of alerts means no exploitation occurred — the vulnerability’s low complexity and the days-long window between PoC publication and your patch may have provided ample opportunity for opportunistic scanning.
Detection
- Log review is the primary detection method. Atlassian recommends URL-decoding each access-log request line up to two passes deep, then searching for
..sequences immediately adjacent to/,\, or::— attackers may double-encode to evade naive single-pass decoding in logging or WAF pipelines. - Search raw (non-decoded) logs as well, using Atlassian’s supplied regex pattern directly against request lines, to catch traversal attempts that weren’t URL-encoded at all.
- Flag any successful (HTTP 200) responses to requests matching those patterns, especially for paths resembling
WEB-INF/classes/*.properties,web.xml, or other configuration-file locations specific to your product — a 200 response to a traversal-pattern request is a strong indicator of successful file disclosure, not just a probing attempt. - For Crowd/Jira integrated environments specifically, check for anomalous Jira user creation events, particularly new accounts added to
jira-administratorsor other privileged groups shortly after any suspicious Crowd request activity — this mirrors the specific exploitation chain documented by watchTowr. - Review Crowd’s application/credential configuration for unexpected use from unfamiliar source IPs if IP allowlisting wasn’t already enforced; enabling IP allowlisting is a compensating control Atlassian specifically calls out as blocking the Crowd-to-Jira escalation chain.
- Rotate any credentials or secrets that were stored in files within the web application root (service account passwords, API tokens, database credentials in configuration files) if log review shows those specific paths were successfully accessed, even after patching — the patch prevents future reads but does not invalidate credentials already disclosed.
- No specific attacker-infrastructure IOCs (IPs, hashes, or user agents) have been publicly published at the time of writing; detection here relies on pattern-matching the request structure itself rather than known indicators.