Splunk Enterprise CVE-2026-20253: unauthenticated PostgreSQL sidecar file write becomes pre-auth RCE
An unauthenticated endpoint in Splunk Enterprise 10.0 and 10.2 lets attackers write files and run code. Exploited. Update to 10.2.4 or 10.0.7.
- Published
- Updated
- Ecosystem
- Enterprise software
- Fixed in
- Splunk Enterprise 10.2.4, 10.0.7, 10.4.0
- Exploitation
- Yes. Splunk confirmed limited exploitation in June 2026; in CISA KEV since 18 June 2026
Live scores
CVE-2026-20253- EPSS
- 0.969
very likely to be attacked soon - VEDAS
- 0.985
strong exploit evidence - On CISA KEV
- Yes, since 2026-06-18
Thin horizontal line: the “likely” (EPSS 0.10) or “strong” (VEDAS 0.90) threshold. Shaded “no data” areas are periods when cve-scores did not publish.
What happened
Splunk Enterprise 10 added a PostgreSQL “sidecar” service. Its API had no authentication, so “any network-reachable user” could create or truncate arbitrary files. Splunk published advisory SVD-2026-0603 on 10 June 2026, rated it CVSS 9.8 and credited Alex Hordijk (Splunk).
The sidecar listens only on 127.0.0.1, but watchTowr showed that Splunk Web on port 8000 forwards requests to it, through paths such as /en-US/splunkd/__raw/v1/postgres/recovery/backup and .../recovery/restore. It chained the file write with a database restore to drop and run a Python script, and published the analysis on 12 June. watchTowr found the sidecar installed and enabled by default on Splunk Enterprise on AWS; on other installs it may be absent or installed but off (watchTowr).
Field Effect reports exploitation starting on 15 June (Field Effect). On 18 June Splunk updated its advisory to say it had become aware of “limited exploitation” (Splunk), and CISA added the CVE to KEV the same day with a due date of 21 June (CISA KEV). Shadowserver tracked more than 1,400 internet-exposed Splunk instances (Greenbone).
Am I affected?
| Splunk Enterprise | Status |
|---|---|
| 10.2.0 to 10.2.3 | Affected, fixed in 10.2.4 |
| 10.0.0 to 10.0.6 | Affected, fixed in 10.0.7 |
| 10.4 | Fixed in 10.4.0 |
| 9.4 and earlier | Not affected |
| Splunk Cloud | Not affected; it does not use the sidecar |
Source: Splunk.
# Version
$SPLUNK_HOME/bin/splunk version
# Is the sidecar running? (from watchTowr)
ss -tupln | grep -i splunk-postgres
ls $SPLUNK_HOME/var/run/supervisor/pkg-run/ | grep pkg-postgres
# Requests to the sidecar's recovery API through Splunk Web
grep -h 'postgres/recovery' $SPLUNK_HOME/var/log/splunk/web_access.log* $SPLUNK_HOME/var/log/splunk/splunkd_access.log* 2>/dev/nullwatchTowr published a non-exploiting checker, watchTowr-vs-Splunk-CVE-2026-20253, that reports whether /v1/postgres/recovery/backup is reachable without authentication (watchTowr; GitHub).
What to do now
- Update to 10.2.4, 10.0.7 or 10.4.0 (Splunk).
- If you cannot update today, disable the sidecar. In
$SPLUNK_HOME/etc/system/local/server.conf, add a[postgres]stanza containingdisabled = true, then restart Splunk. Do not do this on instances that use Edge Processor, OpAmp or SPL2 data pipelines; disabling PostgreSQL breaks them. Search, indexing and dashboards are not affected (Splunk). - Keep Splunk Web off the internet. The attack path runs through the web interface on port 8000 (watchTowr; Field Effect).
- Hunt on any 10.x instance that was exposed after 10 June. Look for requests to
postgres/recovery/backuporrestore, new or changed files under$SPLUNK_HOME/share/splunk/search_mrsparkle/exposed/, changed Python scripts in appbinfolders (watchTowr modifiedsplunk_secure_gateway/bin/ssg_enable_modular_input.pyin its test), and unusual processes run by the Splunk service account (watchTowr; Field Effect).