Skip to content
Verified reproduction

CVE-2026-20253: Unauthenticated arbitrary file operations in Splunk Enterprise PostgreSQL sidecar service (SVD-2026-0603)

CVE-2026-20253 is verified against splunk/splunk · github affected versions: 10.0.0-10.0.6, 10.2.0-10.2.3 vulnerability class: RCE This critical reproduction includes runnable sandbox proof, artifacts, and a plain-text agent view under REPRO-2026-00266.

REPRO-2026-00266 splunk/splunk · github RCE Variant found Jul 7, 2026 .txt
Severity CRITICAL
Confidence HIGH
Reproduced in 63m 18s
Tool calls 307
Spend $6.83
Affected 10.0.0-10.0.6, 10.2.0-10.2.3
$ pruva-verify REPRO-2026-00266
or curl -O https://pruva.dev/api/v1/reproductions/REPRO-2026-00266/artifacts/bundle/repro/reproduction_steps.sh && chmod +x reproduction_steps.sh && ./reproduction_steps.sh
Run in a VM or disposable container. This exploits a real vulnerability.
02 · The vulnerability

CVE-2026-20253 (CVSS 9.8 Critical) - Unauthenticated arbitrary file creation/truncation and RCE in Splunk Enterprise PostgreSQL sidecar service. The sidecar exposes /v1/postgres/recovery/backup and /v1/postgres/recovery/restore endpoints through Splunk's web app (port 8000) with NO authentication (CWE-306). The backup endpoint calls pg_dump with attacker-controlled -U (username from Authorization header), -f (backupFile from JSON body), and database (positional dbname from JSON body, interpreted as libpq connection string). The restore endpoint calls pg_restore similarly. An attacker chains: (1) redirect pg_dump to attacker-controlled PostgreSQL via connection string injection in database param, (2) restore malicious dump into local Postgres using .pgpass file at /opt/splunk/var/packages/data/postgres/.pgpass (postgres_admin credentials), (3) SQL in dump uses lo_from_bytea+lo_export to write arbitrary files, (4) overwrite a Python script Splunk executes on schedule for RCE. CISA KEV added 2026-06-18, action due 2026-06-21.

03 · Root cause
Variant analysis
04 · Reproduction transcript

The agent's step-by-step process — every tool call, every handoff, the moment the exploit fired. Phases: support triages the advisory · repro reproduces it · vuln_variant confirms the fix blocks it · judge verifies.

Loading session...

05 · Artifacts

Scripts, logs, diffs, and output captured during the reproduction.