Detection: Confluence Pre-Auth RCE via OGNL Injection CVE-2023-22527
Description
The following analytic identifies attempts to exploit a critical template injection vulnerability (CVE-2023-22527) in outdated Confluence Data Center and Server versions. It detects POST requests to the "/template/aui/text-inline.vm" endpoint with HTTP status codes 200 or 202, indicating potential OGNL injection attacks. This activity is significant as it allows unauthenticated attackers to execute arbitrary code remotely. If confirmed malicious, attackers could gain full control over the affected Confluence instance, leading to data breaches, system compromise, and further network infiltration. Immediate patching is essential to mitigate this threat.
Search
1
2| tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Web
3 WHERE Web.url="*/template/aui/text-inline.vm*" Web.http_method=POST Web.status IN (200, 202)
4 BY Web.src, Web.dest, Web.http_user_agent,
5 Web.url, Web.status
6
7| `drop_dm_object_name("Web")`
8
9| `security_content_ctime(firstTime)`
10
11| `security_content_ctime(lastTime)`
12
13| `confluence_pre_auth_rce_via_ognl_injection_cve_2023_22527_filter`
Data Source
| Name |
Platform |
Sourcetype |
Source |
| Suricata |
Other |
'suricata' |
'not_applicable' |
Macros Used
| Name |
Value |
| security_content_ctime |
convert timeformat="%Y-%m-%dT%H:%M:%S" ctime($field$) |
| confluence_pre_auth_rce_via_ognl_injection_cve_2023_22527_filter |
search * |
confluence_pre_auth_rce_via_ognl_injection_cve_2023_22527_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
| ID |
Technique |
Tactic |
| T1190 |
Exploit Public-Facing Application |
Initial Access |
CVE
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
| Setting |
Value |
| Disabled |
true |
| Cron Schedule |
0 * * * * |
| Earliest Time |
-70m@m |
| Latest Time |
-10m@m |
| Schedule Window |
auto |
| Creates Finding (Notable) |
Yes |
| Rule Title |
%name% |
| Rule Description |
%description% |
| Notable Event Fields |
user, dest |
| Creates Intermediate Finding (Risk Event) |
No |
TTP detections generate a Finding (Notable) and may generate Intermediate Findings (Risk Events) for associated entities.
Implementation
To successfully implement this search you need to be ingesting information on Web traffic that include fields relavent for traffic into the Web datamodel.
Known False Positives
False positives may be present with legitimate applications. Attempt to filter by dest IP or use Asset groups to restrict to confluence servers.
Associated Analytic Story
Finding
| Title |
Entity Field |
Entity Type |
Risk Score |
| Exploitation attempts on a known vulnerability in Atlassian Confluence detected. The source IP is $src$ and the destination hostname is $dest$. |
dest |
system |
50 |
Threat Objects
| Field |
Type |
| src |
ip_address |
References
Detection Testing
| Test Type |
Status |
Dataset |
Source |
Sourcetype |
| Validation |
✅ Passing |
N/A |
N/A |
N/A |
| Unit |
✅ Passing |
Dataset |
not_applicable |
suricata |
| Integration |
✅ Passing |
Dataset |
not_applicable |
suricata |
Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub |
Version: 9