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-35517 — Erkennungsskripte für Pi-hole FTLDNS RCE (CVE-2026-35517) über Newline-Injection, einschließlich Python-Scanner und Nmap-NSE-Skript für die versionsbasierte Schwachstellenbewertung. | Kitploit
Tools/GitHubGitHub/keraattin/cve-2026-35517
SchwachstellenscannerExploitationInformationsbeschaffungWebsicherheitNetzwerksicherheitPenetrationstests
GitHubkeraattin/cve-2026-35517

CVE-2026-35517

Erkennungsskripte für Pi-hole FTLDNS RCE (CVE-2026-35517) über Newline-Injection, einschließlich Python-Scanner und Nmap-NSE-Skript für die versionsbasierte Schwachstellenbewertung.

Repository anzeigen
4vor 5 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-35517 - Pi-hole FTLDNS Remote Code Execution durch Newline-Injection

CVE-2026-35517 CVSS 8.8 CWE-93 FTLDNS 6.0-6.5

TL;DR

Eine Remote Code Execution-Schwachstelle in der FTLDNS-Engine von Pi-hole (Versionen 6.0 bis 6.5) ermöglicht es einem authentifizierten Angreifer, beliebige dnsmasq-Konfigurationsdirektiven zu injizieren, indem Zeilenvorschubzeichen (\n) in den API-Parameter dns.upstreams eingebettet werden. Da dnsmasq Direktiven unterstützt, die Shell-Befehle ausführen, führt diese Newline-Injection direkt zu vollständiger Befehlsausführung auf dem Host-System.

Dies ist nicht nur ein einzelner Bug, sondern eine Klasse von Injection-Schwachstellen, die fünf verschiedene Konfigurationsparameter betrifft, die alle zusammen in FTL v6.6 gepatcht wurden.


Inhaltsverzeichnis

  • Kurzfakten
  • Was ist Pi-hole FTLDNS?
  • Schwachstellen-Analyse
    • Die Architektur verstehen
    • Der Injektionspunkt
    • Vom Zeilenvorschub zur Shell — Die Kill-Chain
    • Die ganze Familie — Fünf Injektionsvektoren
  • Auswirkungsanalyse
  • Betroffene Versionen
  • Wer ist gefährdet?
  • Erkennung
    • Python-Scanner
    • Nmap-NSE-Skript
    • Manuelle Versionsprüfung
  • Indikatoren für eine Kompromittierung
  • Behebung
  • Referenzen
  • Autor

Kurzfakten

FeldDetail
CVE-IDCVE-2026-35517
AnbieterPi-hole-Projekt
ProduktFTLDNS (pihole-FTL)
Betroffene Versionen6.0 bis < 6.6
CVSS v3.18.8 (Hoch)
CWECWE-93 — Unzureichende Neutralisierung von CRLF-Sequenzen
AngriffsvektorNetzwerk
AuthentifizierungErforderlich (Pi-hole-Admin/API-Zugriff)
BenutzerinteraktionKeine
Veröffentlicht7. April 2026
Gepatcht inFTL v6.6 (veröffentlicht am 3. April 2026)
Entdeckt vonT0X1Cx
Zugehörige AdvisoriesGHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c

Was ist Pi-hole FTLDNS?

Pi-hole ist einer der am weitesten verbreiteten DNS-Sinkholes der Welt. Es sitzt in Ihrem Netzwerk, verarbeitet DNS-Anfragen und blockiert Werbung und Tracker auf DNS-Ebene, bevor sie Ihren Browser erreichen. Es wird überall eingesetzt, von einzelnen Raspberry-Pi-Setups in Wohnungen bis hin zu Unternehmensbereitstellungen, die Tausende von Geräten schützen.

FTLDNS (Faster Than Light DNS) ist die Kern-Engine von Pi-hole. Es ist ein eigener Fork/Wrapper um dnsmasq, den bekannten DNS- und DHCP-Server. FTLDNS übernimmt:

  • DNS-Auflösung und -Caching
  • Blockierung auf DNS-Ebene (die Kernfunktion von Pi-hole)
  • DHCP-Serverfunktionalität
  • Abfrageprotokollierung und Statistiken
  • Die API, mit der die Weboberfläche kommuniziert

Hier ist das entscheidende Detail: FTLDNS generiert dnsmasq-Konfigurationsdateien aus benutzerdefinierten Einstellungen über seine API. Wenn Sie den Upstream-DNS-Server im Pi-hole-Admin-Panel ändern, schreibt FTLDNS diesen Wert in eine dnsmasq-Konfigurationsdatei und startet den Dienst neu. In diesem Schreibpfad liegt die Schwachstelle.


Schwachstellen-Analyse

Die Architektur verstehen

root@kitploit:~
+------------------+            +------------------+               +------------------+
|   Admin-Panel    |  API/Web   |   FTLDNS-Engine   | Config Write  |    dnsmasq       |
|    (Web-UI)      | ---------> |  (pihole-FTL)    | ------------> |   (DNS/DHCP)     |
+------------------+            +------------------+               +------------------+
                                        |                                   |
                                  Liest Einstellungen,                 Liest Konfiguration,
                                  schreibt Konfigurations-             bedient DNS/DHCP
                                  dateien auf die Festplatte           im Netzwerk

Wenn ein Admin die Upstream-DNS-Server über die Pi-hole-Web-UI oder API ändert, ist der Ablauf wie folgt:

  1. Die Web-UI sendet eine Anfrage an die FTLDNS-API mit dem neuen Upstream-DNS-Wert
  2. FTLDNS validiert die Eingabe (oder besser gesagt: validiert sie nicht richtig)
  3. FTLDNS schreibt den Wert in eine dnsmasq-Konfigurationsdirektive
  4. dnsmasq wird neu gestartet und liest die neue Konfiguration

Der Injektionspunkt

Der Parameter dns.upstreams soll DNS-Serveradressen wie 8.8.8.8 oder 1.1.1.1 akzeptieren. FTLDNS schreibt diese in die dnsmasq-Konfiguration als server=-Direktiven:

root@kitploit:~
# Normale Eingabe: "8.8.8.8"
# Generiert:
server=8.8.8.8

Das Problem: FTLDNS bereinigt keine Zeilenvorschubzeichen in der Eingabe. Ein Angreifer kann \n injizieren, um aus der beabsichtigten server=-Direktive auszubrechen und vollständig neue Konfigurationszeilen zu injizieren:

root@kitploit:~
# Bösartige Eingabe: "8.8.8.8\ndhcp-option=6,evil.dns.server"
# Generiert:
server=8.8.8.8
dhcp-option=6,evil.dns.server

Das allein wäre schon besorgniserregend (DNS-Hijacking durch DHCP-Options-Injection). Aber es wird noch schlimmer.

Vom Zeilenvorschub zur Shell — Die Kill-Chain

dnsmasq unterstützt eine Konfigurationsdirektive namens dhcp-option, die auf externe Skripte verweisen kann, und was noch kritischer ist: Es unterstützt mehrere Direktiven, die in bestimmten Szenarien Befehle ausführen können. Die Ausbeutungskette sieht wie folgt aus:

root@kitploit:~
Schritt 1: Angreifer authentifiziert sich bei Pi-hole 
        (Standard-Anmeldedaten, schwaches Passwort, CSRF, kompromittierte Sitzung)

Schritt 2: Angreifer sendet API-Anfrage zum Aktualisieren von dns.upstreams:
        
        POST /api/dns/upstream
        {
          "upstreams": ["8.8.8.8\n<bösartige dnsmasq-Direktive>"]
        }

Schritt 3: FTLDNS schreibt den Wert in die dnsmasq-Konfigurationsdatei, 
        ohne den Zeilenvorschub zu bereinigen

Schritt 4: Die injizierte dnsmasq-Direktive wird als 
        legitime Konfigurationsoption geparst

Schritt 5: Je nach injizierter Direktive erreicht der Angreifer:
        - DNS-Hijacking (Umleitung aller DNS-Anfragen)
        - DHCP-Poisoning (Auslieferung bösartiger Konfigurationen an Clients)
        - Befehlsausführung über die Skriptfähigkeiten von dnsmasq
        - Dateischreiben auf beliebige Pfade

Die entscheidende Erkenntnis ist, dass es hier nicht um die Ausnutzung einer dnsmasq-Schwachstelle geht — dnsmasq funktioniert wie vorgesehen. Die Schwachstelle besteht darin, dass FTLDNS nicht vertrauenswürdige Eingaben in die Konfigurationsdatei einfließen lässt und so aus einer Konfigurationsverwaltungs-API einen beliebigen Konfigurations-Injektionspunkt macht.

Die ganze Familie — Fünf Injektionsvektoren

Der Forscher (T0X1Cx) entdeckte, dass dasselbe Newline-Injection-Muster fünf verschiedene FTLDNS-Konfigurationsparameter betrifft. Dies ist ein systemisches Problem — dem Code fehlte durchgängig die Eingabebereinigung:

AdvisoryParameterWas es steuert
GHSA-23w8-7333-p9fjdns.upstreamsUpstream-DNS-Server
GHSA-wxhv-w77q-6qwpdns.hostRecordBenutzerdefinierte DNS-Host-Einträge
GHSA-28g5-gg88-wh5mdns.cnameRecordsCNAME-Record-Zuordnungen
GHSA-fqv2-qhfh-ghcjdhcp.leaseTimeDHCP-Leasedauer
GHSA-vfmq-jrx3-wv3cdhcp.hostsStatische DHCP-Host-Zuweisungen

Jeder dieser Parameter schreibt in dnsmasq-Konfigurationsdateien, und jeder versäumte es, Zeilenvorschubzeichen zu bereinigen. Der Fix in FTL v6.6 fügte eine ordnungsgemäße Eingabevalidierung hinzu, die Zeilenvorschubzeichen (und andere Steuerzeichen) in allen Konfigurationsparametern ablehnt.


Auswirkungsanalyse

Auf dem Pi-hole-Host:

  • Vollständige Befehlsausführung mit den Rechten des FTLDNS-Prozesses (normalerweise root oder pihole-Benutzer)
  • Da Pi-hole oft auf dedizierten Geräten (Raspberry Pi) oder als privilegierter Container läuft, bedeutet dies häufig Root-Zugriff
  • Lese-/Schreibzugriff auf das Host-Dateisystem
  • Persistenz über Cron-Jobs, SSH-Keys oder modifizierte Systemdateien

Im Netzwerk (nachgelagerte Auswirkungen):

  • DNS-Hijacking — Umleitung aller DNS-Anfragen auf angreiferkontrollierte Server
  • DHCP-Poisoning — Auslieferung bösartiger DNS-, Gateway- oder NTP-Einstellungen an alle DHCP-Clients
  • Man-in-the-Middle-Positionierung — durch Kontrolle des DNS kann der Angreifer Datenverkehr für jede Domain umleiten
  • Ernte von Anmeldedaten — Umleitung von Authentifizierungsendpunkten auf Phishing-Server
  • Malware-Verteilung — Umleitung von Software-Update-Domains zur Auslieferung bösartiger Payloads

Risikoverstärkende Faktoren:

  • Pi-hole ist oft der einzige DNS-Server im Netzwerk — kompromittieren Sie ihn, und Sie kontrollieren die Namensauflösung für jedes Gerät
  • Viele Pi-hole-Installationen verwenden Standard- oder schwache Admin-Passwörter
  • Pi-hole-Instanzen sind häufig dem gesamten lokalen Netzwerk ausgesetzt, nicht nur Admins
  • CSRF-Angriffe gegen die Pi-hole-Weboberfläche könnten die Ausnutzung ohne direkte Authentifizierung auslösen

Betroffene Versionen

VersionStatus
FTLDNS 6.6+Gepatcht
FTLDNS 6.0 – 6.5Verwundbar
FTLDNS 5.x und älterNicht betroffen (andere API-Architektur)

So überprüfen Sie Ihre Version:

root@kitploit:~
pihole -v
# oder
pihole-FTL --version

Wer ist gefährdet?

Hohes Risiko:

  • Pi-hole-Instanzen, die von nicht vertrauenswürdigen Netzwerksegmenten aus erreichbar sind
  • Bereitstellungen mit Standard- oder schwachen Admin-Passwörtern
  • Pi-hole, das dem Internet ausgesetzt ist (auf Shodan überraschend häufig)
  • Shared-Hosting-Umgebungen, in denen mehrere Benutzer auf dasselbe Netzwerk zugreifen

Mäßiges Risiko:

  • Pi-hole-Instanzen in gut segmentierten Heimnetzwerken mit starken Passwörtern
  • Bereitstellungen hinter VPN mit Multi-Faktor-Authentifizierung

Geringeres Risiko (aber trotzdem patchen):

  • Luftspalt- oder vollständig isolierte Pi-hole-Instanzen
  • Schreibgeschützte oder API-deaktivierte Bereitstellungen

Erkennung

Python-Scanner

Das Python-Skript erkennt verwundbare Pi-hole-Instanzen durch versionsbasierte Analyse.

So funktioniert es:

  1. Fingerprinting — Identifiziert Pi-hole über Indikatoren der Admin-Oberfläche (Seiteninhalt, Header)
  2. API-Versionsabfrage — Fragt sowohl die Pi-hole-v5- als auch die v6-API-Endpunkte nach FTL-Versionsinformationen ab
  3. Versionsvergleich — Parst die FTL-Versionszeichenfolge und prüft sie gegen den verwundbaren Bereich (6.0 ≤ v < 6.6)
  4. Zugehörige CVEs — Wenn verwundbar, werden alle fünf zugehörigen Newline-Injection-Advisories markiert

Es werden keine Injektions-Payloads gesendet. Der Test ist vollständig schreibgeschützt und sicher.

Verwendung:

root@kitploit:~
# Abhängigkeiten installieren
pip install -r requirements.txt

# Einzelnes Ziel (HTTP, Standardport 80)
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1

# Benutzerdefinierter Port
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t pi.hole -p 8080

# HTTPS-Modus (wechselt automatisch zu Port 443)
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 10.0.0.1 --https

# Massenscan aus Datei
python CVE-2026-35517_PiHole_FTLDNS_detector.py -f targets.txt

# JSON-Ausgabe in Datei gespeichert
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --json -o results.json

# Erhöhtes Timeout
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --timeout 20

Optionen:

FlagBeschreibungStandard
-t, --targetZiel-IP oder Hostname—
-f, --fileDatei mit Zielen, eines pro Zeile (#-Kommentare unterstützt)—
-p, --portZielport80
--httpsHTTPS verwenden (wechselt Port automatisch auf 443, wenn Port 80 ist)Aus
--timeoutVerbindungs-Timeout in Sekunden10
--jsonAusgabe im JSON-FormatAus
-o, --outputErgebnisse in einer Datei speichern—

Beispielausgabe:

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  CVE-2026-35517 - Pi-hole FTLDNS RCE Detector                ║
║  Newline Injection in dns.upstreams → Command Execution      ║
║  CVSS: 8.8 (High) | Affects: FTLDNS 6.0 - 6.5                ║
╚══════════════════════════════════════════════════════════════╝

[*] Scanning 192.168.1.1:80...

Target: 192.168.1.1:80
============================================================
  [*] Pi-hole detected
      Admin interface: Accessible
      API accessible:  Yes
      FTL version:     v6.4
      Core version:    v6.3
      Web version:     v6.4

  CVE-2026-35517 Assessment:
    [VULNERABLE] FTLDNS 6.4 is within the vulnerable range (6.0 - 6.5).
    Upgrade to FTL v6.6 or later immediately.

  Related Vulnerabilities (also patched in FTL v6.6):
    [-] GHSA-wxhv-w77q-6qwp: RCE via dns.hostRecord Newline Injection
    [-] GHSA-28g5-gg88-wh5m: RCE via dns.cnameRecords Newline Injection
    [-] GHSA-fqv2-qhfh-ghcj: RCE via dhcp.leaseTime Newline Injection
    [-] GHSA-vfmq-jrx3-wv3c: RCE via dhcp.hosts Newline Injection

  Remediation:
    1. Upgrade Pi-hole FTL to version 6.6 or later
    2. Run: pihole -up
    3. Verify with: pihole -v
    4. Review API access controls and authentication settings
    5. Check logs for signs of exploitation (unusual DNS config changes)

Nmap-NSE-Skript

root@kitploit:~
# NSE-Skript installieren
sudo cp CVE-2026-35517_PiHole_FTLDNS.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

# Basisscan
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS <Ziel>

# Häufige Pi-hole-Ports scannen
nmap -p 80,443,8080,4711 --script CVE-2026-35517_PiHole_FTLDNS <Ziel>

# Subnetz-Scan — alle Pi-hole-Instanzen in einem Netzwerk finden
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS 192.168.1.0/24

# Kombiniert mit Versionserkennung
nmap -sV -p 80,443 --script CVE-2026-35517_PiHole_FTLDNS <Ziel>

# Ziele aus einer Datei scannen
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS -iL targets.txt

Beispiel-Nmap-Ausgabe:

root@kitploit:~
PORT   STATE SERVICE
80/tcp open  http
| CVE-2026-35517_PiHole_FTLDNS:
|   VULNERABLE:
|   Pi-hole FTLDNS RCE via Upstream DNS Configuration
|     State: VULNERABLE
|     IDs:  CVE:CVE-2026-35517
|     Risk factor: High (CVSS: 8.8)
|     Disclosure date: 2026-04-07
|     Extra information:
|       FTL Version: v6.4
|       Core Version: v6.3
|       Web Version: v6.4
|       Related advisories also fixed in FTL v6.6:
|         GHSA-wxhv-w77q-6qwp (dns.hostRecord injection)
|         GHSA-28g5-gg88-wh5m (dns.cnameRecords injection)
|         GHSA-fqv2-qhfh-ghcj (dhcp.leaseTime injection)
|         GHSA-vfmq-jrx3-wv3c (dhcp.hosts injection)
|       Remediation: Upgrade to Pi-hole FTL v6.6+ (pihole -up)
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-35517
|_      https://github.com/pi-hole/FTL/security/advisories/GHSA-23w8-7333-p9fj

Manuelle Versionsprüfung

Wenn Sie SSH-Zugriff auf den Pi-hole-Host haben:

root@kitploit:~
# FTL-Version prüfen
pihole-FTL --version

# Oder über die Pi-hole-CLI
pihole -v

# Über API prüfen (v6)
curl -s http://pi.hole/api/info/version | python3 -m json.tool

# Über API prüfen (v5)
curl -s http://pi.hole/admin/api.php?versions | python3 -m json.tool

Wenn die FTL-Version zwischen 6.0 und 6.5 (einschließlich) liegt, sind Sie verwundbar.


Indikatoren für eine Kompromittierung

Worauf Sie achten sollten:

  • Ungewöhnliche dnsmasq-Konfigurationseinträge — Prüfen Sie /etc/dnsmasq.d/ und /etc/pihole/ auf unerwartete Direktiven
  • Geänderte Upstream-DNS-Einstellungen — Verifizieren Sie, dass Ihre konfigurierten Upstream-Server nicht geändert wurden
  • Unerwartete API-Aufrufe — Überprüfen Sie das Abfrageprotokoll und die API-Zugriffsprotokolle von Pi-hole auf Konfigurationsänderungsanfragen
  • Anomales DNS-Verhalten — Clients, die Domains auf unerwartete IP-Adressen auflösen
  • Neue Cron-Jobs oder SSH-Keys — Wenn der Host über Befehlsausführung kompromittiert wurde
  • Prozessanomalien — Unerwartete Kindprozesse, die von dnsmasq oder pihole-FTL erzeugt wurden

Befehle zur Untersuchung:

root@kitploit:~
# dnsmasq-Konfigurationen auf injizierte Zeilen prüfen
grep -r "dhcp-option\|addn-hosts\|conf-file\|log-facility" /etc/dnsmasq.d/

# Auf kürzliche Konfigurationsänderungen prüfen
find /etc/pihole /etc/dnsmasq.d -mtime -7 -ls

# Pi-hole-Debug-Protokoll überprüfen
pihole -d

# Laufende Prozesse auf Anomalien prüfen
ps aux | grep -E "dnsmasq|pihole"

# Crontab auf Persistenz prüfen
crontab -l
cat /etc/crontab
ls -la /etc/cron.d/

Behebung

Sofortmaßnahme — jetzt aktualisieren:

root@kitploit:~
# Pi-hole aktualisieren (enthält FTL, Web und Core)
pihole -up

# Update verifizieren
pihole -v
# FTL-Version sollte >= 6.6 sein

Wenn Sie nicht sofort aktualisieren können:

  1. API-Zugriff einschränken — Konfigurieren Sie Pi-hole so, dass API-Verbindungen nur von vertrauenswürdigen IPs akzeptiert werden
  2. Admin-Passwort ändern — Verwenden Sie ein starkes, eindeutiges Passwort: pihole -a -p
  3. Netzwerkisolation — Stellen Sie sicher, dass die Pi-hole-Admin-Oberfläche nur aus einem Verwaltungs-VLAN erreichbar ist
  4. Remote-API deaktivieren — Wenn Sie nur die lokale Web-UI verwenden, beschränken Sie die API auf localhost

Maßnahmen nach dem Patch:

  1. DNS-Konfiguration prüfen — Überprüfen Sie alle dnsmasq-Konfigurationsdateien auf injizierte Direktiven
  2. Upstream-Server verifizieren — Bestätigen Sie, dass Ihre DNS-Upstream-Einstellungen korrekt sind
  3. Auf Persistenz prüfen — Suchen Sie nach nicht autorisierten Cron-Jobs, SSH-Keys oder modifizierten Systemdateien
  4. DHCP-Leases überprüfen — Wenn DHCP von Pi-hole verwaltet wird, verifizieren Sie die Lease-Konfigurationen
  5. DNS-Verhalten überwachen — Achten Sie in den nächsten Tagen auf anomale Auflösungsmuster

Referenzen

  • GitHub Security Advisory — GHSA-23w8-7333-p9fj (dns.upstreams)
  • GitHub Security Advisory — GHSA-wxhv-w77q-6qwp (dns.hostRecord)
  • GitHub Security Advisory — GHSA-28g5-gg88-wh5m (dns.cnameRecords)
  • GitHub Security Advisory — GHSA-fqv2-qhfh-ghcj (dhcp.leaseTime)
  • GitHub Security Advisory — GHSA-vfmq-jrx3-wv3c (dhcp.hosts)
  • Pi-hole FTL v6.6 Release Notes

Autor

Kerem Oruç - Cybersicherheitsingenieur

  • GitHub: @keraattin
  • Twitter: @keraattin
Tool herunterladen