🔍 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 :

  1. Accès non authentifié à l’API : L’endpoint /en-US/splunkd/__raw/v1/postgres/recovery/backup est accessible via le proxy Splunk sans credentials valides.
  2. Path traversal : Le paramètre backupFile permet une traversée de répertoire pour créer/écraser des fichiers arbitraires.
  3. SSRF vers base PostgreSQL attaquant : Le paramètre database accepte une connection string PostgreSQL, permettant d’injecter hostaddr=attacker.db pour forcer pg_dump à se connecter à une base contrôlée par l’attaquant.
  4. Récupération du fichier .pgpass : Le fichier /opt/splunk/var/packages/data/postgres/.pgpass contient les credentials PostgreSQL locaux (postgres_admin).
  5. Restauration SQL malveillante : L’endpoint /restore permet 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.
  6. RCE : Écrasement du script Python /opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py avec 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_export pour l’écriture de fichiers
  • “Project Red” (LLM interne de watchTowr pour la reproduction de vulnérabilités)

📁 Artefacts notables

  • Fichier .pgpass exposé : /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/backup et /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.localVT · URLhaus · ThreatFox
  • CVEs : CVE-2026-20253NVD · 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