What Happened
On 5 October 2026, Atlassian published an out-of-band security bulletin: CVE-2026-21589 is an unauthenticated arbitrary file access (effectively an arbitrary file read) in eight self-hosted Data Center products. Rating: CVSS v4 9.3 (Critical) — network reachable, no privileges, no user interaction, high confidentiality impact.
Affected are all versions prior to the fixed releases of:
| Product | Fixed Versions |
|---|---|
| Bitbucket Data Center | 9.4.26, 10.2.8, 10.5.1 |
| Confluence Data Center | 9.2.26, 10.2.19 |
| Jira Software Data Center | 9.12.40, 10.3.26, 11.3.12 |
| Jira Service Management Data Center | 5.12.40, 10.3.26, 11.3.12 |
| Bamboo Data Center | 10.2.24, 12.1.12 |
| Crowd Data Center | 6.3.7, 7.0.3, 7.1.7, 7.2.4 |
| Crucible | 4.9.15 |
| Fisheye | 4.9.15 |
The Atlassian Cloud variants were patched server-side, so Cloud customers need do nothing. Bitbucket Cloud is not affected.
Root Cause: Two Colons That Become Slashes
The flaw lives in the shared library atlassian-plugins-webresource (vulnerable: 6.0.7, fixed: 6.0.8). The resource router converts a :: in the request path into a / — before path resolution takes place. A traversal written with double colons can therefore escape the resource directory through a legacy relative-path resolver.
GET /download/resources/jira.webresources:color-picker-popup/images/..::..::..::..::..::WEB-INF::web.xml HTTP/1.1
Host: {{Jira-Hostname}}
Internally, ..::..::..::..::WEB-INF::web.xml becomes ../../../../WEB-INF/web.xml. Access stays within the Tomcat context, but everything in the webroot is readable — the attacker must already know the exact filename and path; directory listing is not possible.
From File Read to Jira Administrator
It gets interesting in Crowd-integrated deployments: Jira stores its Crowd credentials in WEB-INF/classes/crowd.properties — in plaintext. watchTowr demonstrated the full chain in the lab:
- Exploit CVE-2026-21589 and read
crowd.properties - Use the stolen credentials against the Crowd REST API
- Create a new user
- Add that user to the
jira-administratorsgroup → full admin access to Jira
An IP allowlist on the Crowd instance would have made this step harder. Atlassian itself notes that impact is configuration-dependent: "In some configurations, there may be sensitive files present that increase your risk."
Exploitation: Two Hours from PoC to Live Traffic
The timeline is the real lesson here:
- 2 Oct 2026 — Atlassian attaches a 511-byte
rewrite.configfile (a block rule) to the public Jira tickets — three days before the advisory. - 5 Oct 2026, 21:30 UTC — the CVE is published.
- 6 Oct 2026, 17:01 UTC — watchTowr publishes its root-cause analysis, a full PoC, and a detection-artifact generator on GitHub.
- 6 Oct 2026, ~20:52 UTC — the first exploit attempts reach Previdian's honeypots. Two hours after the write-up.
- 7 Oct 2026 — a Nuclei template goes public; VulnCheck adds the flaw to its KEV list.
- 8–10 Oct 2026 — Previdian's telemetry ultimately counts 361 exploit attempts from over 100 unique attacker IPs across five sensors; the last observed attempt dates to 10 October.
The first three documented source IPs:
38.60.157[.]86146.70.187[.]234159.26.119[.]225
The SANS Internet Storm Center reports that every source address seen so far belongs to a single cloud hosting provider, and likely a single actor behind it. So far there is no confirmed successful compromise — the activity is reconnaissance and credential sweeping. watchTowr: "Most attempts at exploitation so far have focused on fingerprinting the existence of an affected product and sweeping for common configuration files and sensitive information only."
Important: as of 10 October, CVE-2026-21589 is not in CISA KEV. The precedent is CVE-2021-26086, a Jira path-traversal file read that CISA added to KEV on 12 November 2024.
What Admins Must Do Now
- Patch. To the respective fix version of your product line, internet-reachable instances first.
- If that can't happen immediately: take the instance off the internet — even if it requires login. Atlassian states explicitly that an authentication layer is not protection.
- Interim mitigation: a WAF/proxy rule blocking any URL with
..directly adjacent to/,\or::(including URL-encoded forms). For Confluence, JSM, Jira, Bamboo and Crowd, additionally a Tomcat RewriteValve rule per node; for Bitbucket a rule inurlrewrite.xml— each requiring a restart. Neither is explicitly a substitute for the patch. - Log forensics: URL-decode every request line up to two times, then look for
..directly adjacent to/,\or::— or check the raw lines against Atlassian's regex. A200on a match before the patch is the hit you need to chase. - Check Crowd accounts: a patch does not undo an already-completed read of the Crowd credentials. Anyone running Jira with Crowd should review the Crowd audit log for newly created users and changed group memberships since 2 October, and rotate the Crowd application password.
This case is a textbook example of the compressed N-day timeline: disclosure on a Monday, public PoC on Tuesday, automated mass scanning on Wednesday. If you run eight self-hosted Atlassian products in your data centre, you did not patch "sometime this week" in that window — you patched on Monday.
Sources
- Atlassian Security Advisory CVE-2026-21589
- watchTowr Labs – "You Won't Hear About These, Even In Myths" (Root Cause + PoC)
- watchTowr Detection Artifact Generator (GitHub)
- The Hacker News – Exploitation Attempts Within Two Hours of Public Details
- BleepingComputer – Hackers exploit critical Atlassian flaw after public PoC release
- Previdian – CVE-2026-21589 Exploitation Telemetry
- Help Net Security – Exploitation attempts against critical Atlassian flaw have begun
