
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.
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.
| Feld | Detail |
|---|---|
| CVE-ID | CVE-2026-35517 |
| Anbieter | Pi-hole-Projekt |
| Produkt | FTLDNS (pihole-FTL) |
| Betroffene Versionen | 6.0 bis < 6.6 |
| CVSS v3.1 | 8.8 (Hoch) |
| CWE | CWE-93 — Unzureichende Neutralisierung von CRLF-Sequenzen |
| Angriffsvektor | Netzwerk |
| Authentifizierung | Erforderlich (Pi-hole-Admin/API-Zugriff) |
| Benutzerinteraktion | Keine |
| Veröffentlicht | 7. April 2026 |
| Gepatcht in | FTL v6.6 (veröffentlicht am 3. April 2026) |
| Entdeckt von | T0X1Cx |
| Zugehörige Advisories | GHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c |
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:
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.
+------------------+ +------------------+ +------------------+
| 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:
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:
# 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:
# 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.
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:
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.
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: