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.

 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

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