Tutorial

CVE-2026-21589: patch Atlassian now

Security & Monitoring9 min read8 steps

On 5 October 2026, Atlassian published a critical advisory for CVE-2026-21589, a path traversal vulnerability rated CVSS v4.0 9.3. The flaw requires no authentication and affects every Data Center edition of Jira, Confluence, Bitbucket, Bamboo, Crowd, Crucible, and Fisheye. If your instance is reachable from the internet, patching is the only reliable mitigation.

Contents· Why this vulnerability is serious1/9
  1. 01Why this vulnerability is serious
  2. 02Affected products and versions
  3. 03Prerequisites before upgrading
  4. 04Check your version and apply the patch
  5. 05Temporary workaround if patching is not immediately possible
  6. 06Verify your instance is no longer vulnerable
  7. 07Long-term hardening measures
  8. 08Vulnerable vs fixed versions for the three main products
  9. 09Conclusion

Why this vulnerability is serious

CVE-2026-21589 is a path traversal triggered by a double-colon sequence (::) in HTTP request paths. An attacker who can reach your instance over the network — no credentials required — can read arbitrary files from the application web root and its subdirectories. Depending on your deployment layout, that may include configuration files, internal tokens, or cached data that were never intended to be publicly accessible.

The CVSS v4.0 base score of 9.3 reflects three compounding factors: no authentication required, no user interaction needed, and broad availability impact across the entire product family. Atlassian confirmed the patch on 5 October 2026. At the time of writing, proof-of-concept tooling circulates privately; public exploitation is expected to follow within days of advisory publication, as has been the pattern for previous high-severity Atlassian CVEs.

Cloud-hosted Atlassian accounts (Jira Cloud, Confluence Cloud) are not affected — the patch was applied automatically by Atlassian. This advisory concerns only self-hosted Data Center deployments.

Affected products and versions

  • Confluence Data Center — all versions prior to 9.2.26 (LTS line) and 10.2.19 (current line)
  • Jira Software Data Center — all versions prior to 9.12.40 (LTS line), 10.3.26, or 11.3.12
  • Jira Service Management Data Center — all versions prior to 5.12.40 (LTS line), 10.3.26, or 11.3.12
  • Bitbucket Data Center — see the official advisory at advisories.atlassian.com for the specific fixed version
  • Bamboo Data Center — see the official advisory
  • Crowd — see the official advisory
  • Crucible / Fisheye — see the official advisory
  • Atlassian Cloud — not affected

Prerequisites before upgrading

Before applying any patch, run a full backup of your database and home directory. For Confluence, this means both the database and the confluence.home directory (attachments, plugins, configuration). For Jira, back up the database and jira.home. Verify that your backup is readable before proceeding.

Check whether you are on a supported upgrade path. Atlassian publishes upgrade matrices; upgrading from a very old release to a current fixed version in a single step is sometimes unsupported and requires an intermediate stop. Use the Atlassian Upgrade Path Checker at my.atlassian.com before you start.

Confirm you have enough disk space: the installer unpacks a full distribution alongside the running instance. For large Confluence deployments, plan for at least 10 GB of free space on the installation volume.

Check your version and apply the patch

  1. Identify your current version

    For Confluence, navigate to Administration → General Configuration → About Confluence or read the atlassian.version key from confluence.home/confluence.cfg.xml. For Jira, go to Administration → System → System Info and look for the Build field, or run grep -m1 'version' /opt/atlassian/jira/atlassian-jira/META-INF/MANIFEST.MF on the host. Record the exact version string before continuing.

  2. Download the fixed installer

    Fetch the patched installer from the official Atlassian download centre at www.atlassian.com/software/confluence/download-archives (Confluence) or the equivalent page for your product. Verify the SHA-256 checksum against the value published on the download page before running anything. Do not use third-party mirrors.

  3. Put the application in maintenance mode

    For Confluence DC: go to Administration → Maintenance and enable maintenance mode. This prevents new sessions from starting while active sessions drain. For Jira DC, the equivalent option is under Administration → System → Maintenance. Wait for active sessions to drop to zero or accept a brief interruption window.

  4. Stop the application service

    Run sudo systemctl stop confluence (or jira, depending on your init configuration). Confirm the process is no longer listening: ss -tlnp | grep 8090 should return nothing for Confluence's default port. If you use a custom port, adjust accordingly.

  5. Run the installer or unpack the archive

    If you use the .bin installer, mark it executable with chmod +x atlassian-confluence-9.2.26-x64.bin and run it as root. Choose Upgrade when prompted, pointing the installer at your existing installation directory. If you manage deployments manually via the .tar.gz archive, replace the installation directory contents while preserving your confluence.home symlinks and server.xml customisations.

  6. Restart and verify the service is up

    Start the service with sudo systemctl start confluence and tail the log: tail -f /opt/atlassian/confluence/logs/atlassian-confluence.log. Watch for the Server startup in line. Then open the admin UI and confirm the version number displayed matches the patched release.

  7. For Data Center clusters: roll each node

    In a cluster, remove one node from the load balancer, patch it, start it, wait for it to rejoin the cluster (check Administration → Clustering), then repeat for the next node. Never take all nodes offline simultaneously; doing so triggers the cluster's split-brain protection and may require manual recovery.

  8. Test basic functionality and check logs for errors

    After the upgrade, run a smoke test: create a page in Confluence or a ticket in Jira, check that attachments upload correctly, and verify that any SSO integration still works. Review atlassian-confluence.log or atlassian-jira.log for stack traces introduced by the upgrade.

Temporary workaround if patching is not immediately possible

If you cannot apply the patch right now, the most effective interim measure is to block external access to the instance entirely. Place the application behind a reverse proxy (nginx or Apache httpd) and restrict access to known IP ranges using allow / deny directives. At the nginx level, you can also add a location block that rejects requests containing the double-colon sequence: if ($request_uri ~* '::') { return 403; }. This is a heuristic filter, not a proper fix — it can be bypassed by encoding variants — but it reduces opportunistic scanning. Do not rely on this as a permanent solution. Patch as soon as your maintenance window allows.

Note: generic WAF rules that inspect the URL path may or may not catch all encoding variants of the :: traversal. Atlassian's own advisory explicitly states that network-level filtering is not a sufficient substitute for the patch.

Verify your instance is no longer vulnerable

After patching, confirm the version in the admin UI matches the fixed release. You can also perform a basic sanity check from a machine that has network access to the instance by sending a crafted request and verifying it returns a 400 or 403 rather than file content. A safe test path is to request http://your-domain.com/confluence/setup/::WEB-INF/web.xml — a fixed instance returns an error; a vulnerable one returns the file.

For a more rigorous check, use a tool like nuclei with the Atlassian CVE-2026-21589 template (available in the community nuclei-templates repository once the template is published). Run the scan from a network segment that can reach the instance and confirm zero findings.

Finally, review your application logs for any historical access patterns that match the :: traversal pattern, which would indicate exploitation attempts or actual exploitation before the patch. Search for the literal string :: in your access log: grep '::' /opt/atlassian/confluence/logs/access.log. Any hit before your patch date warrants a deeper incident review.

Long-term hardening measures

Patching CVE-2026-21589 addresses the immediate risk, but the broader lesson is about exposure surface. A few measures make your Atlassian deployment significantly harder to exploit in the future.

Restrict network exposure. If your team is not distributed globally, restrict port 443 to your office IP ranges and VPN exit nodes at the firewall level. Atlassian products have no business being directly reachable from the open internet unless your use case genuinely requires it. A VPS with a properly configured ufw ruleset can drop scan traffic before it ever reaches the application.

Run behind a reverse proxy with request filtering. nginx as a reverse proxy allows you to normalise request paths before they reach Atlassian, reject oversized headers, rate-limit the login endpoint, and log structured access data. The proxy_pass model also means your real application port (8090 for Confluence, 8080 for Jira) is never exposed directly.

Automate vulnerability scanning. Tools like trivy or grype can scan the installed Atlassian JAR files and flag known CVEs. Integrate this into a weekly cron job and route alerts to your monitoring system. Atlassian also maintains an RSS feed at advisories.atlassian.com — subscribe to it so you receive new advisories within hours of publication.

Keep a tested rollback procedure. Every upgrade should have a documented rollback step. Snapshot your VPS disk before patching, or at minimum verify your database backup is restorable. A rollback that has never been tested is not a rollback — it is a hope.

Vulnerable vs fixed versions for the three main products

Scroll the table

ProductVulnerable versionsFixed version
Confluence Data CenterAll versions < 9.2.26 (LTS) or < 10.2.199.2.26 (LTS) · 10.2.19
Jira Software Data CenterAll versions < 9.12.40 (LTS), < 10.3.26, or < 11.3.129.12.40 (LTS) · 10.3.26 · 11.3.12
Jira Service Management DCAll versions < 5.12.40 (LTS), < 10.3.26, or < 11.3.125.12.40 (LTS) · 10.3.26 · 11.3.12

Conclusion

CVE-2026-21589 is one of the more serious Atlassian vulnerabilities in recent years: unauthenticated, wide product coverage, and a CVSS of 9.3. Patching is straightforward if your deployment follows Atlassian's standard layout, and the fixed versions are available now. The interim nginx filter buys time, but it is not a substitute for the upgrade.

If you are running Atlassian tools on a VPS and want a baseline that includes proper firewall configuration, automated snapshots, and a reverse proxy setup, the ServOrbit managed VPS offering is designed for exactly this workload.

Related reading: [Migrer Jira vers OpenProject ou Plane sur VPS](/blog/migrer-jira-openproject-plane-vps-2026) · [Authentik vs Authelia — SSO self-hosted](/blog/authentik-vs-authelia-sso-self-hosted) · [CrowdSec vs fail2ban — sécurité VPS](/blog/crowdsec-vs-fail2ban-securite-vps)

Deploy your infrastructure today

VPS Cloud. Preconfigured environments available.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab