← CYBERSPACE / Pwning

CVE-2026-21589: Atlassian Critical Flaw (CVSS 9.3) in Eight Data Center Products — Exploits Two Hours After the PoC

hacking

On 5 October 2026 Atlassian published an out-of-band bulletin for CVE-2026-21589: an unauthenticated arbitrary file read in eight self-hosted Data Center products (Jira, Confluence, Bitbucket, Bamboo, Crowd, JSM, Crucible, Fisheye), CVSS 9.3. Via crowd.properties the read reaches Jira administrator in the lab. watchTowr published root cause and PoC on 6 October — two hours later the first exploit attempts hit honeypots.

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:

ProductFixed Versions
Bitbucket Data Center9.4.26, 10.2.8, 10.5.1
Confluence Data Center9.2.26, 10.2.19
Jira Software Data Center9.12.40, 10.3.26, 11.3.12
Jira Service Management Data Center5.12.40, 10.3.26, 11.3.12
Bamboo Data Center10.2.24, 12.1.12
Crowd Data Center6.3.7, 7.0.3, 7.1.7, 7.2.4
Crucible4.9.15
Fisheye4.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:

  1. Exploit CVE-2026-21589 and read crowd.properties
  2. Use the stolen credentials against the Crowd REST API
  3. Create a new user
  4. Add that user to the jira-administrators group → 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.config file (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[.]86
  • 146.70.187[.]234
  • 159.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

  1. Patch. To the respective fix version of your product line, internet-reachable instances first.
  2. 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.
  3. 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 in urlrewrite.xml — each requiring a restart. Neither is explicitly a substitute for the patch.
  4. 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. A 200 on a match before the patch is the hit you need to chase.
  5. 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

View source ↗