Skip to content

CVE-2023-22515 — Atlassian Confluence Broken Access Control

Key facts

CVE-2023-22515 is a Critical (10.0) vulnerability: Atlassian Confluence Broken Access Control. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2023-10-05), confirming active exploitation in the wild, and is linked to known ransomware campaigns.

Actively exploited — on the CISA KEV catalog

CVE-2023-22515 is listed on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2023-10-05), confirming exploitation in the wild. It is linked to known ransomware campaigns. Federal remediation deadline: 2023-10-13. Prioritise patching and deploy the detection and prevention rules below.

CVE CVE-2023-22515
Severity Critical (10.0)
CISA KEV Actively exploited (added 2023-10-05) · ransomware
Product Atlassian Confluence Data Center & Server
Detection / prevention Snort, YARA, Nginx, Apache
PoC poc.py
Source 2023/CVE-2023-22515/

Details

CVE-2023-22515 (Atlassian Confluence Data Center & Server) is a Critical (10.0) vulnerability: Atlassian Confluence Broken Access Control. This entry ships a detection-only proof-of-concept (PoC), a Docker test lab, and ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) — see Detection and prevention below. Source: NVD record.

Attribute Value
CVE ID CVE-2023-22515
CVSS Score 10.0 (Critical)
Product Atlassian Confluence Data Center & Server
Type Broken Access Control / Privilege Escalation
CWE CWE-284 (Improper Access Control)

Description

Critical privilege escalation vulnerability in Confluence Data Center and Server allowing external attackers to create unauthorized Confluence administrator accounts by accessing setup endpoints that should only be available during initial installation.

Affected Versions

  • Confluence 8.0.0 - 8.3.2
  • Confluence 8.4.0 - 8.4.2
  • Confluence 8.5.0 - 8.5.1

Verification Process

The PoC uses a multi-stage verification approach:

Step 1: Version Detection (Passive)

[*] Query /server-info.action
[*] Extract version from response
[*] Check if version is in vulnerable range

Step 2: Active Vulnerability Testing

Method Description Detection
Setup Endpoint Tests if /setup/setupadministrator.action is accessible Returns 200 OK with setup content
Parameter Injection Injects setupType=cluster parameters Response contains setup context
Header Bypass Tests X-Forwarded-For: 127.0.0.1 Setup page accessible via header

Verification Flow

┌─────────────────────────────────────────────────────────────┐
│                    Version Detection                         │
│  GET /server-info.action → Extract version                  │
│  Is version 8.0.0-8.5.1? → Mark as potentially vulnerable   │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│               Active Vulnerability Testing                   │
│                                                              │
│  1. Setup Endpoint Test                                      │
│     └─ GET /setup/setupadministrator.action                 │
│     └─ If 200 OK + setup content → CONFIRMED VULNERABLE     │
│                                                              │
│  2. Parameter Injection Test                                 │
│     └─ GET /?setupType=cluster&setupStep=setupadministrator │
│     └─ If setup context triggered → CONFIRMED VULNERABLE    │
│                                                              │
│  3. Header Bypass Test                                       │
│     └─ GET /setup/* with X-Forwarded-For: 127.0.0.1        │
│     └─ If accessible → CONFIRMED VULNERABLE                 │
└─────────────────────────────────────────────────────────────┘

Usage

# Full vulnerability check (version + active testing)
python3 poc.py -t https://confluence.target.com -c

# Version-only check (passive, no payloads sent)
python3 poc.py -t https://confluence.target.com -c --version-only

Expected Output (Vulnerable)

============================================================
CVE-2023-22515 - Confluence Broken Access Control
CVSS: 10.0 (Critical) | Affects: Confluence 8.0.0 - 8.5.1
============================================================

[*] Target: https://confluence.target.com
[*] Step 1: Detecting Confluence version...
[*] Detected: Confluence 8.5.0
[!] Version 8.5.0 is in vulnerable range
[*] Step 2: Active vulnerability testing...
[*] Testing setup endpoint accessibility...
[!] VULNERABLE - Setup endpoint accessible

============================================================
RESULTS
============================================================
[!] STATUS: VULNERABLE
[!] Method: setup_endpoint_accessible
[!] Details: CONFIRMED: Setup endpoint /setup/setupadministrator.action returned 200 OK
[*] Version: Confluence 8.5.0

Mitigation

  1. Upgrade immediately to fixed versions:
  2. Confluence 8.3.3 or later
  3. Confluence 8.4.3 or later
  4. Confluence 8.5.2 or later

  5. Block external access to setup endpoints:

    location ~ ^/setup/ {
        deny all;
        return 403;
    }
    

  6. Review admin accounts for unauthorized additions

  7. Check access logs for requests to /setup/* endpoints

References

Detection and prevention

Ready-to-deploy defensive rules for CVE-2023-22515, for authorized testing and blue-team detection engineering:

References: NVD — CVE-2023-22515 · full write-up on the searchable site

Detection & prevention rules

# CVE-2023-22515 - Snort IDS Rules
# Severity: High

# Detect potential exploit attempts
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (
    msg:"CVE-2023-22515 Potential Exploit Attempt";
    flow:to_server,established;
    content:".."; http_uri;
    classtype:web-application-attack;
    sid:2023225151;
    rev:1;
    metadata:cve CVE-2023-22515, severity high;
)

# Detect suspicious patterns in request
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (
    msg:"CVE-2023-22515 Suspicious Request Pattern";
    flow:to_server,established;
    pcre:"/(%2e%2e|%252e|\x00)/Ui";
    classtype:web-application-attack;
    sid:2023225152;
    rev:1;
    metadata:cve CVE-2023-22515, severity high;
)

:material-file-download: prevention/snort.rules

/*
 * CVE-2023-22515 - YARA Detection Rules
 */

rule CVE_2023_22515_Exploit {
    meta:
        description = "Detects potential CVE-2023-22515 exploit attempts"
        author = "Security Research Team"
        severity = "high"
        cve = "CVE-2023-22515"

    strings:
        $path_traversal1 = "../" ascii wide
        $path_traversal2 = "..\" ascii wide
        $encoded1 = "%2e%2e" ascii wide nocase
        $encoded2 = "%252e" ascii wide nocase
        $null_byte = "%00" ascii wide

    condition:
        any of them
}

:material-file-download: prevention/yara.yar

# CVE-2023-22515 - Prevention Rules for Nginx

# Block common exploit patterns
location / {
    # Rate limiting
    limit_req zone=general burst=20 nodelay;

    # Block suspicious patterns
    if ($request_uri ~* "(\.\.[\/]|%2e%2e|%252e)") {
        return 403;
    }

    # Security headers
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "DENY" always;
    add_header X-XSS-Protection "1; mode=block" always;
}

# Log suspicious activity
access_log /var/log/nginx/CVE-2023-22515-access.log;
error_log /var/log/nginx/CVE-2023-22515-error.log;

:material-file-download: prevention/nginx.conf

# CVE-2023-22515 - Prevention Rules for Apache httpd

# Block common exploit patterns
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Block path traversal
    RewriteCond %{REQUEST_URI} (\.\.[\/]|%2e%2e|%252e) [NC]
    RewriteRule .* - [F,L]

    # Block null bytes
    RewriteCond %{REQUEST_URI} %00 [NC]
    RewriteRule .* - [F,L]
</IfModule>

# Security headers
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Header always set X-XSS-Protection "1; mode=block"

# Enable logging
CustomLog /var/log/httpd/CVE-2023-22515-access.log combined
ErrorLog /var/log/httpd/CVE-2023-22515-error.log

:material-file-download: prevention/httpd.conf

Frequently asked questions

What is CVE-2023-22515?

CVE-2023-22515 is a Critical (10.0) vulnerability: Atlassian Confluence Broken Access Control. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2023-10-05), confirming active exploitation in the wild, and is linked to known ransomware campaigns.

How do I detect CVE-2023-22515?

Deploy the Snort and YARA detection rule included with this entry (see Detection & prevention rules below), then validate it against the detection-only PoC in the Docker test lab.

How do I block or mitigate CVE-2023-22515?

Apply the Nginx and Apache mitigation config included with this entry, and upgrade to a fixed version per the vendor advisory (see the NVD record for affected versions).

Is CVE-2023-22515 actively exploited?

Yes. CVE-2023-22515 is on the CISA Known Exploited Vulnerabilities (KEV) catalog, added 2023-10-05, which means it has been exploited in the wild. CISA also links it to known ransomware campaigns. CISA set a federal remediation deadline of 2023-10-13. Prioritise patching and deploy the detection and prevention rules above.


For authorized security testing and research only. See the full source and NVD record.