Your wiki holds identity credentials

Your wiki holds identity credentials

An automated scanner looking at CVE-2026-21589 reports an arbitrary file read. Unauthenticated, yes, but a read: no write, no execution, no persistence. In a typical vulnerability management workflow that is a medium-severity information disclosure, scheduled into the next cycle.

Atlassian scored it CVSS 9.3. The researchers at watchTowr who found the root cause demonstrated why, and the demonstration is three steps long:

  1. Read WEB-INF/classes/crowd.properties from an affected instance, with no authentication
  2. Use the credentials in that file to authenticate to Atlassian Crowd, the identity product that fronts logins for Jira, Confluence and the rest
  3. Create a user and add it to the jira-administrators group

The vulnerability class never changed. What changed is what the file could reach.

Where asset inventories go wrong

Most inventories classify by what a thing is. A server, a database, an application. Then criticality gets assigned by what the thing does for the business: production or non-production, customer-facing or internal, revenue-bearing or supporting.

Under that scheme, Confluence, Jira and Bitbucket land in a predictable place. They are productivity tools. Collaboration software. The wiki. They get patched on the general cycle rather than the urgent one, they are frequently out of scope for penetration tests that concentrate on "production", and they are often excluded from external scanning on the grounds that they are internal — right up until someone checks and finds the Confluence instance a project team published in 2022 so a contractor could reach it.

The Atlassian case breaks that scheme cleanly. The wiki was never the target. It was a readable path to the identity system, and the identity system is what everything else trusts.

Classify by reach

The more useful question is not "what is this system" but "what does this system hold or reach that something else trusts?"

Run that question across a typical estate and the criticality ratings move in uncomfortable ways:

  • The wiki holds architecture diagrams, runbooks, and — in practice, whatever the policy says — credentials pasted into pages by people in a hurry
  • The issue tracker holds the history of every security finding you have ever raised and not yet fixed, with enough detail to reproduce them
  • The CI/CD platform holds deployment credentials for production and can push code into it
  • The monitoring server, by design, can reach every network segment it monitors
  • The backup console can delete every copy of your data, which is precisely why ransomware operators go there first
  • The identity platform is the thing all of the above authenticate against

None of those is "production" in the sense most inventories mean. All of them reach production.

What NIS 2 actually expects

Article 21 of NIS 2, transposed in Romania by OUG nr. 155/2024, requires policies on risk analysis and information system security, and asset management is where that starts in any serious implementation. The directive does not hand you a classification scheme. It requires that your measures be proportionate to the risk — which is an instruction to understand the risk first.

An inventory that assigns criticality by business label, rather than by what each system can reach, is not proportionate to anything. It is proportionate to the org chart.

Two practical consequences for an assessment:

  • Your patch SLA should be driven by reach, not by category. A monitoring server or an identity platform earns the same urgency as a customer-facing application, because compromising it gets you the customer-facing application anyway.
  • Your test scope should follow the same logic. If the last penetration test covered the public website and the payment flow but not the self-hosted Git server or the wiki, the scope was set by what the organisation is proud of rather than by what an attacker would pick.

The step a scanner stops at

This is the difference worth understanding, and it is not a marketing point — it is a description of what the two activities can each establish.

An automated scan identifies the file read. It can confirm the instance is vulnerable, and in a good configuration it will tell you the affected version and the fix. What it cannot do is know that crowd.properties exists on your particular deployment, that the credentials inside it are valid, that the Crowd server is reachable from where the attacker now stands, and that the account it grants can be escalated into jira-administrators.

That chain is four conditional steps, each depending on your specific configuration. A scanner reports step one as medium severity and stops, correctly, because it cannot safely attempt the rest.

A tester does attempt the rest, which is how a medium becomes a finding that says "an unauthenticated internet user can obtain administrative access to the system holding your engineering history". Those are the same vulnerability with different consequences attached, and only one of them gets prioritised properly.

Worth noting the mitigating control that the same chain reveals: Crowd IP allow-listing breaks it. If the Crowd server only accepts application connections from known addresses, the stolen credentials do not work from the attacker's position. That is a control nobody would think to verify from the vulnerability description alone.

What to do this month

This is a documentation exercise before it is a technical one.

  • Take your asset inventory and add one column: what credentials does this system hold, and what does it authenticate to? Fill it in for the twenty systems that matter most.
  • Find the systems that other systems trust — the identity platform, the monitoring server, the CI/CD platform, the backup console, the secrets store — and check whether their criticality rating reflects that.
  • Check whether any of those are reachable from the internet. Not whether they are supposed to be. Whether they answer.
  • Check your last penetration test scope against that list and note what was excluded, and why.
  • For the Atlassian case specifically: patch to the fixed versions, and if crowd.properties may have been read, rotate the Crowd application credentials and audit for accounts created or elevated since early October.

Where the inventory itself is the problem — where nobody is confident what the organisation publishes — an external attack surface review builds the list from the outside, which is the same method and the same starting point an attacker uses. An internal penetration test answers the reach question directly: from one compromised workstation or one over-privileged service account, what can actually be got to. And where the gap is between what the policy says and what an assessor will accept as evidence, an audit and compliance review under NIS 2 covers that ground.

The underlying lesson is older than this CVE. Attackers do not navigate your org chart. They follow trust relationships, and trust relationships rarely match the labels on the inventory.

Sources: Atlassian security advisory for CVE-2026-21589 · watchTowr rapid reaction · The Hacker News, 7 October 2026

The escalation chain described above is watchTowr's demonstration, reported via security press; we have not reproduced it. It requires a Crowd-integrated deployment and network reach to the Crowd server, and Crowd IP allow-listing defeats it. Atlassian discovered the vulnerability itself and has not confirmed exploitation of Data Center instances.

This article is general information, not legal or regulatory advice.

← Back to blog