Home NachrichtenPi-hole-Update schließt Root-Lücke: Manipulierte PID-Datei schmuggelt Befehle ein

Pi-hole-Update schließt Root-Lücke: Manipulierte PID-Datei schmuggelt Befehle ein

by Dimitri Roschkowski
0 Kommentare

Wer Pi-hole als Werbeblocker im Heimnetz betreibt, sollte jetzt aktualisieren. Das am 17. Oktober 2026 veröffentlichte Update auf FTL v6.8, Web v6.6.1 und Core v6.5 (Docker-Image 2026.10.0) schließt mehr als ein Dutzend Sicherheitslücken, fünf davon mit hohem Schweregrad. Die gefährlichste erlaubt es, über eine manipulierte PID-Datei Befehle als Root auszuführen, und umgeht damit den Fix einer früheren Lücke.

Das Wichtigste in Kürze

  • Betroffen: Alle Pi-hole-Versionen vor Core v6.5, FTL v6.8 und Web v6.6.1 sowie Docker-Images vor 2026.10.0.
  • Schwerste Lücken: Fünf Advisories mit CVSS 7,3 bis 7,8, alle lokale Rechteausweitung vom Benutzer pihole zu Root oder Dateizugriffe als Root.
  • Aus dem Netz erreichbar: Ein Speicherfehler bei unauthentifizierten CHAOS/TXT-DNS-Anfragen (CVSS 5,9).
  • Update: sudo pihole -up, vorher ein Backup mit Teleporter. Docker-Nutzer ziehen das Image 2026.10.0.
  • Dazu: weniger CPU-Last durch ein neues Live-Log, Punycode für internationale Domains, viele Bugfixes.

Die Lücke mit dem Befehlsschmuggel

Hinter dem Advisory GHSA-cf36-4hhc-8398 (CVSS 7,8) steckt ein klassischer Shell-Fehler. Das Pi-hole-Skript liest die Prozess-ID des DNS-Dienstes aus der Datei /run/pihole-FTL.pid. Diese Datei gehört dem Benutzer pihole und ist für ihn beschreibbar. Die Prüfung, ob der Inhalt wirklich eine Zahl ist, kontrollierte nur das erste Zeichen. Ein Wert wie 1+a[$(id > /tmp/PWNED)] beginnt mit einer Ziffer und passiert die Prüfung.

Später vergleicht das Skript den Wert in einem arithmetischen Ausdruck der Bash. Dabei wertet die Shell Array-Indizes aus, inklusive Befehlssubstitution. Sobald ein Administrator anschließend ein Kommando mit Root-Rechten ausführt, etwa pihole reloaddns, läuft der eingeschmuggelte Befehl als Root. Die Lücke umgeht den Fix für CVE-2026-41489 aus dem Frühjahr. Voraussetzung ist lokaler Zugriff als Benutzer pihole, also zum Beispiel über eine andere Schwachstelle im Webinterface oder einen kompromittierten Dienst auf dem Gerät.

Die weiteren schweren Lücken

Advisory CVSS Komponente Problem
GHSA-xch2-4qxw-g5vj 7,8 Core Das Update-Check-Skript folgt als Root Symlinks bei der Versionsdatei, beliebige Dateioperationen als Root
GHSA-j8vh-6fp9-cjcx 7,8 Core Rechteausweitung über die Ambient Capability CAP_CHOWN des FTL-Prozesses, /opt/pihole wird gehärtet
GHSA-2h7g-g549-hf74 7,7 FTL Authentifiziertes Lesen beliebiger Dateien durch Verschieben des Document Root per Teleporter, Umgehung eines früheren Fixes
GHSA-mff6-cjc4-5wq9 7,3 Core gravity.sh ändert als Root den Besitzer eines beliebigen Verzeichnisses über den Konfigurationspfad files.gravity

Dazu kommen mittelschwere Lücken: Adlisten mit file://-Adressen konnten lokale Dateien auslesen (CVSS 6,5), App-Passwort- und CLI-Sitzungen konnten den Passwort-Hash und das TOTP-Geheimnis des Admins lesen (6,5), unauthentifizierte CHAOS/TXT-DNS-Anfragen lösten einen Out-of-bounds-Write im Antwortpuffer aus (5,9), und EDNS(0)-Daten einer Anfrage konnten in die Antwort an einen anderen Client rutschen (4,2). Niedrig eingestuft sind unter anderem drei Stored-XSS-Lücken in den Einstellungsseiten des Webinterfaces, Cross-Site-Requests bei passwortlosem Zugang und mehrere Abstürze durch Use-after-free und Double-free in FTL.

Die meisten Lücken wurden von externen Sicherheitsforschern gemeldet, darunter abdoghazy2015, keithlinneman, das Kimi Security Team, Pedromdsn und 010011110. Alle Advisories sind in den GitHub-Repositories von Pi-hole veröffentlicht.

Was das Update sonst bringt

  • Live-Log als Ringpuffer: Das Live-Log in FTL v6.8 arbeitet jetzt als Ring Buffer und spart CPU-Zeit.
  • Weniger Speicher: Die Langzeitstatistik gruppiert vor dem Tabellen-Join, laut Entwicklern rund 22 MB weniger pro Million Anfragen, zwei ungenutzte Indizes wurden entfernt.
  • Punycode: Internationalisierte Domainnamen werden mit libidn2 nach Punycode konvertiert statt abgelehnt.
  • Bugfixes: Das Leeren der Logs löschte bisher die komplette Langzeithistorie, Abstürze mit mehr als 256 Alias-Clients sind behoben, die Log-Rotation läuft nicht mehr doppelt.
  • Core v6.5: neues Datenbankschema (Version 21), bessere Fehlerbehandlung in Gravity, der listsCache liegt jetzt neben gravity.db.
  • Web v6.6.1: bessere API-Fehlermeldungen im Query-Log, CIDR-Prüfung beim Conditional Forwarding, Moment.js 2.31.0.

So aktualisierst du Pi-hole

Bei einer normalen Installation reicht ein Befehl. Vorher lohnt ein Backup der Konfiguration über Teleporter, entweder im Webinterface unter Einstellungen → Teleporter oder auf der Kommandozeile:

sudo pihole-FTL --teleporter
sudo pihole -up

Docker-Nutzer ziehen das Image pihole/pihole:2026.10.0 (oder latest) und starten den Container neu. Anschließend zeigt pihole -v die Versionen Core v6.5, FTL v6.8 und Web v6.6.1.

Wer Pi-hole noch nicht nutzt oder neu aufsetzen will, findet die Anleitung unter Pi-hole einrichten 2026. Für Docker auf dem Raspberry Pi hilft der Beitrag Docker auf dem Raspberry Pi installieren. Als Alternative mit ähnlichem Funktionsumfang bleibt AdGuard Home.

Einordnung

Keine der schweren Lücken lässt sich direkt aus dem Internet ausnutzen, alle brauchen entweder einen Login am Webinterface oder lokalen Zugriff auf das Gerät. Im Heimnetz ist das Risiko deshalb überschaubar, solange das Webinterface nicht ohne Passwort läuft und nicht nach außen erreichbar ist. Trotzdem gilt: Pi-hole ist der DNS-Server für das ganze Netz, ein Angreifer mit Root-Rechten darauf kann jede Anfrage umleiten. Das Update dauert eine Minute und ist die Sache wert.

Quellen

You may also like

Hinterlasse einen Kommentar