🔍 Contexte
Le 12 juin 2026, watchTowr Labs (Piotr Bazydlo et Yordan Ganchev) publie une analyse technique approfondie de CVE-2026-20253, une vulnérabilité critique (CVSS 9.8) affectant Splunk Enterprise et permettant une exécution de code à distance sans authentification préalable.
🎯 Vulnérabilité
La faille réside dans le PostgreSQL Sidecar Service de Splunk Enterprise, un composant installé et activé par défaut sur les déploiements Splunk Enterprise sur AWS (versions 10 et supérieures). Ce service expose une API HTTP interne (127.0.0.1:5435) accessible via proxy depuis l’interface web principale de Splunk (port 8000), sans aucun contrôle d’authentification.
⚙️ Chaîne d’exploitation
La chaîne d’exploitation complète se déroule en plusieurs étapes :
- Accès non authentifié à l’API : L’endpoint
/en-US/splunkd/__raw/v1/postgres/recovery/backupest accessible via le proxy Splunk sans credentials valides. - Path traversal : Le paramètre
backupFilepermet une traversée de répertoire pour créer/écraser des fichiers arbitraires. - SSRF vers base PostgreSQL attaquant : Le paramètre
databaseaccepte une connection string PostgreSQL, permettant d’injecterhostaddr=attacker.dbpour forcerpg_dumpà se connecter à une base contrôlée par l’attaquant. - Récupération du fichier
.pgpass: Le fichier/opt/splunk/var/packages/data/postgres/.pgpasscontient les credentials PostgreSQL locaux (postgres_admin). - Restauration SQL malveillante : L’endpoint
/restorepermet de charger un dump PostgreSQL contrôlé par l’attaquant, déclenchant l’exécution de fonctions SQL (lo_export) pour écrire des fichiers arbitraires. - RCE : Écrasement du script Python
/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.pyavec un payload malveillant, exécuté automatiquement par Splunk.
🛠️ Outils utilisés
pg_dump/pg_restore(binaires PostgreSQL légitimes détournés)- Fonction PostgreSQL
lo_exportpour l’écriture de fichiers - “Project Red” (LLM interne de watchTowr pour la reproduction de vulnérabilités)
📁 Artefacts notables
- Fichier
.pgpassexposé :/opt/splunk/var/packages/data/postgres/.pgpass - Script Python écrasable :
/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py - Endpoints vulnérables :
/v1/postgres/recovery/backupet/v1/postgres/recovery/restore
📄 Nature de l’article
Il s’agit d’une publication de recherche offensive par watchTowr Labs, détaillant la découverte et l’exploitation complète de CVE-2026-20253, accompagnée d’un outil de détection (DAG) permettant de vérifier l’exposition d’une instance Splunk.
🧠 TTPs et IOCs détectés
TTP
- T1190 — Exploit Public-Facing Application (Initial Access)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1055 — Process Injection (Defense Evasion)
- T1083 — File and Directory Discovery (Discovery)
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1105 — Ingress Tool Transfer (Command and Control)
- T1565.001 — Data Manipulation: Stored Data Manipulation (Impact)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
- T1036 — Masquerading (Defense Evasion)
- T1210 — Exploitation of Remote Services (Lateral Movement)
IOC
- Domaines :
attacker.db.watchTowr.local— VT · URLhaus · ThreatFox - CVEs :
CVE-2026-20253— NVD · CIRCL - Fichiers :
ssg_enable_modular_input.py - Fichiers :
watchTowr.txt - Fichiers :
splunk-postgres - Chemins :
/opt/splunk/var/run/supervisor/pkg-run/ - Chemins :
/opt/splunk/var/packages/data/postgres/.pgpass - Chemins :
/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py - Chemins :
/opt/splunk/share/splunk/search_mrsparkle/exposed/watchTowr.txt - Chemins :
/tmp/poc - Chemins :
/tmp/pwn
Malware / Outils
- pg_dump (tool)
- pg_restore (tool)
🟡 Indice de vérification factuelle : 50/100 (moyenne)
- ⬜ labs.watchtowr.com — source non référencée (0pts)
- ✅ 24585 chars — texte complet (fulltext extrait) (15pts)
- ✅ 11 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ 0/1 IOCs confirmés externellement (0pts)
- ✅ 10 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ 0/1 CVE(s) confirmée(s) (0pts)
🔗 Source originale : https://labs.watchtowr.com/why-use-app-level-auth-when-every-database-has-auth-splunk-enterprise-cve-2026-20253-pre-auth-rce