Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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-42167 — Analyse technique et preuve de concept pour CVE-2026-42167, une injection SQL critique dans ProFTPD mod_sql permettant le contournement de l'authentification, l'injection d'utilisateurs backdoor et l'exécution de code à distance. | Kitploit
Outils/GitHubGitHub/kaleth4/cve-2026-42167
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

Analyse technique et preuve de concept pour CVE-2026-42167, une injection SQL critique dans ProFTPD mod_sql permettant le contournement de l'authentification, l'injection d'utilisateurs backdoor et l'exécution de code à distance.

Voir le dépôt
il y a 3 moisPas 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 →
Partager

CVE-2026-42167: Injection SQL dans ProFTPD mod_sql

📋 Résumé Exécutif

CVE-2026-42167 est une vulnérabilité critique d'injection SQL dans le module mod_sql de ProFTPD qui permet le contournement de l'authentification, l'injection d'utilisateurs backdoor et l'exécution de code à distance (RCE).

AttributValeur
TypeInjection SQL (CWE-89)
GravitéÉlevée/Critique
CVSS v38.1
Composantmod_sql dans ProFTPD < 1.3.9a
Signalé parZeroPath Research
Date28 avril 2026

🔍 Description Technique

Le Problème : Validation Faible dans is_escaped_text()

ProFTPD utilise la fonction is_escaped_text() pour déterminer si une valeur a déjà été assainie avant de l'insérer dans une requête SQL. La fonction suppose que toute entrée qui :

  • Commence par une apostrophe simple '
  • Se termine par une apostrophe simple '
  • Ne contient pas d'apostrophes simples internes

...a déjà été échappée et ne nécessite aucun traitement supplémentaire.

L'Exploit

Un attaquant peut envoyer un nom d'utilisateur malveillant comme :

root@kitploit:~
USER ' || (SELECT 1) ||'

Lorsqu'il est inséré dans une requête SQL comme :

root@kitploit:~
INSERT "'%U', '%r', '%m'" activity_log

Cela produit :

root@kitploit:~
INSERT "'' || (SELECT 1) || ''" activity_log

Le payload est exécuté comme SQL arbitraire car les opérateurs || concatènent des chaînes vides autour de la commande injectée.


⚠️ Scénarios d'Impact

1️⃣ Exécution de Code à Distance (RCE)

Exigences :

  • Backend PostgreSQL
  • Utilisateur de base de données avec privilèges de superutilisateur
  • Journalisation SQL activée avec les variables %U ou %{basename}

Technique :

root@kitploit:~
COPY (SELECT 1) TO PROGRAM 'commande_malveillante'

Exécute des commandes au niveau du système d'exploitation en tant qu'utilisateur postgres.

2️⃣ Contournement de l'Authentification

Exigences :

  • SQLAuthenticate activé
  • Journalisation SQL avec la variable %U dans SQLLog ERR_* (pré-authentification)

Technique :

root@kitploit:~
INSERT INTO users (username, password, uid, homedir) 
VALUES ('attacker', 'password_hash', 0, '/')

L'attaquant injecte un utilisateur backdoor avec uid=0 (root) et un accès à tout le système de fichiers.

3️⃣ Exfiltration de Données

Exigences :

  • N'importe quel backend SQL
  • Journalisation SQL activée

Technique : Injection SQL aveugle basée sur le temps pour extraire les identifiants caractère par caractère.


📊 Vecteurs d'Attaque

Variables Contrôlées par l'Attaquant

VariableSignificationPortée
%UNom d'utilisateur original (avant authentification)Pré-auth
%AMot de passe de connexion anonymePré-auth
%JParamètres de la commandePré-auth
%mVerbe FTP (STOR, RETR, etc.)Pré-auth
%{basename}Composant du nom de fichierPost-auth
%lRéponse ident (RFC 1413)Pré-auth (si identd est disponible)

Chemins d'Exploitation

Pré-authentification (la plus critique) :

root@kitploit:~
%U + SQLLog ERR_* → Aucun identifiant requis

Post-authentification :

root@kitploit:~
%{basename} + SQLLog STOR → Nécessite n'importe quel utilisateur FTP valide

🛡️ Atténuation et Solution

✅ Solution Recommandée

Mettre à jour immédiatement vers ProFTPD 1.3.9a ou supérieur :

root@kitploit:~
# Vérifier la version actuelle
proftpd -v

# Mettre à jour (exemple pour Debian/Ubuntu)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 Atténuations Temporaires

Si vous ne pouvez pas mettre à jour immédiatement :

  1. Désactiver la journalisation SQL :
root@kitploit:~
# Commenter ou supprimer ces lignes dans proftpd.conf
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. Appliquer le principe du moindre privilège :
root@kitploit:~
-- Dans PostgreSQL, créer un utilisateur sans privilèges de superutilisateur
CREATE USER proftpd_user WITH PASSWORD 'secure_password';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- NE PAS accorder SUPERUSER
  1. Surveillance des tentatives d'exploit :
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 Vérification de la Vulnérabilité

Indicateur de Compromission

Rechercher dans les journaux de trace de ProFTPD (avec Trace sql:17 activé) :

root@kitploit:~
text 'payload' is already escaped, skipping escaping it again

Ce message indique qu'une tentative de bypass a été traitée par le moteur vulnérable.

Commande pour Vérifier

root@kitploit:~
# Activer les traces détaillées
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# Redémarrer ProFTPD
sudo systemctl restart proftpd

# Surveiller les journaux
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 Informations sur les Versions

VersionStatut
< 1.3.9❌ Vulnérable
1.3.9❌ Vulnérable
≥ 1.3.9a✅ Corrigé
≥ 1.3.10rc1✅ Corrigé

🧪 Preuve de Concept (PoC)

Dépôt Officiel

GitHub : ZeroPathAI/proftpd-CVE-2026-42167-poc

Configuration Rapide avec Docker

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# Prérequis
# - Docker
# - Git
# - Python 3.10+
# - uv (gestionnaire de paquets Python)

# Configurer l'environnement vulnérable
cd setup
./setup.sh

# Exécuter les PoCs
cd ../pocs
python3 preauth_user_backdoor.py      # Injecter un utilisateur backdoor (pré-auth)
python3 preauth_user_rce.py           # RCE via COPY TO PROGRAM (pré-auth)
python3 postauth_stor_backdoor.py     # Injecter un utilisateur (post-auth)
python3 postauth_stor_rce.py          # RCE (post-auth)

# Nettoyer
cd ../setup
./teardown.sh

📅 Chronologie

DateÉvénement
2026-03-28Vulnérabilité signalée à ProFTPD
2026-04-07Vérification et développement du correctif
2026-04-24CVE-2026-42167 attribué
2026-04-27Correctif publié (commit af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27ProFTPD 1.3.9a publié

📚 Références

  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • Blog Technique : https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • Dépôt PoC : https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • Notes de Version : http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • Discussion : https://github.com/proftpd/proftpd/issues/2052

⚡ Recommandations Finales

  1. Action Immédiate : Mettre à jour ProFTPD vers 1.3.9a ou supérieur
  2. Audit : Examiner les configurations SQLLog sur tous les serveurs ProFTPD
  3. Privilèges : S'assurer que les utilisateurs de base de données n'ont pas de permissions de superutilisateur
  4. Surveillance : Mettre en place des alertes pour les tentatives d'injection SQL
  5. Correctifs : Maintenir un programme de correctifs régulier pour toutes les dépendances

Dernière mise à jour : 28 avril 2026
Source : ZeroPath Research, MITRE CVE, NVD

Télécharger l’outil