
Script di rilevamento per Pi-hole FTLDNS RCE (CVE-2026-35517) tramite iniezione di newline, inclusi scanner Python e script Nmap NSE per la valutazione della vulnerabilità basata sulla versione.
Una vulnerabilità di Remote Code Execution nel motore FTLDNS di Pi-hole (versioni dalla 6.0 alla 6.5) consente a un attaccante autenticato di iniettare direttive di configurazione dnsmasq arbitrarie incorporando caratteri di nuova riga (\n) nel parametro API dns.upstreams. Poiché dnsmasq supporta direttive che eseguono comandi shell, questa iniezione di nuova riga si traduce direttamente in esecuzione completa di comandi sul sistema host.
Non si tratta di un singolo bug, ma di una classe di iniezioni che colpisce cinque diversi parametri di configurazione, tutti corretti insieme in FTL v6.6.
| Campo | Dettaglio |
|---|---|
| ID CVE | CVE-2026-35517 |
| Venditore | Pi-hole Project |
| Prodotto | FTLDNS (pihole-FTL) |
| Versioni interessate | 6.0 a < 6.6 |
| CVSS v3.1 | 8.8 (Alto) |
| CWE | CWE-93 — Neutralizzazione impropria delle sequenze CRLF |
| Vettore di attacco | Rete |
| Autenticazione | Richiesta (accesso admin/API Pi-hole) |
| Interazione utente | Nessuna |
| Pubblicata | 7 aprile 2026 |
| Corretta in | FTL v6.6 (rilasciata il 3 aprile 2026) |
| Scoperta da | T0X1Cx |
| Avvisi correlati | GHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c |
Pi-hole è uno dei sinkhole DNS più ampiamente distribuiti al mondo. Si posiziona sulla tua rete, gestisce le query DNS e blocca pubblicità e tracker a livello DNS prima che raggiungano il tuo browser. Viene utilizzato ovunque, dalle singole configurazioni Raspberry Pi in appartamenti alle distribuzioni aziendali che proteggono migliaia di dispositivi.
FTLDNS (Faster Than Light DNS) è il motore principale di Pi-hole. È un fork/wrapper personalizzato attorno a dnsmasq, il noto server DNS e DHCP. FTLDNS gestisce:
Ecco il dettaglio chiave: FTLDNS genera file di configurazione dnsmasq a partire dalle impostazioni fornite dall'utente tramite la sua API. Se cambi il server DNS upstream nel pannello di amministrazione di Pi-hole, FTLDNS scrive quel valore in un file di configurazione dnsmasq e riavvia il servizio. È in quel percorso di scrittura che risiede la vulnerabilità.
+------------------+ +------------------+ +------------------+
| Pannello di | API/Web | Motore FTLDNS | Scrittura cfg | dnsmasq |
| amministrazione| ---------> | (pihole-FTL) | ------------> | (DNS/DHCP) |
| (Web UI) | | | | |
+------------------+ +------------------+ +------------------+
| |
Legge le impostazioni, Legge la config,
scrive i file di config serve DNS/DHCP
su disco alla rete
Quando un amministratore modifica i server DNS upstream tramite la web UI o l'API di Pi-hole, il flusso è:
Il parametro dns.upstreams è pensato per accettare indirizzi di server DNS come 8.8.8.8 o 1.1.1.1. FTLDNS li scrive nella configurazione dnsmasq come direttive server=:
# Input normale: "8.8.8.8"
# Genera:
server=8.8.8.8
Il problema: FTLDNS non sanifica i caratteri di nuova riga nell'input. Un attaccante può iniettare \n per uscire dalla direttiva server= prevista e iniettare linee di configurazione completamente nuove:
# Input malevolo: "8.8.8.8\ndhcp-option=6,evil.dns.server"
# Genera:
server=8.8.8.8
dhcp-option=6,evil.dns.server
Già questo sarebbe preoccupante (dirottamento DNS tramite iniezione di opzioni DHCP). Ma peggiora.
dnsmasq supporta una direttiva di configurazione chiamata dhcp-option che può fare riferimento a script esterni e, cosa più critica, supporta diverse direttive che possono eseguire comandi in scenari specifici. La catena di sfruttamento è la seguente:
Passo 1: L'attaccante si autentica su Pi-hole
(credenziali predefinite, password debole, CSRF, sessione compromessa)
Passo 2: L'attaccante invia una richiesta API per aggiornare dns.upstreams:
POST /api/dns/upstream
{
"upstreams": ["8.8.8.8\n<direttiva dnsmasq malevola>"]
}
Passo 3: FTLDNS scrive il valore nel file di configurazione dnsmasq
senza sanificare la nuova riga
Passo 4: La direttiva dnsmasq iniettata viene interpretata come
opzione di configurazione legittima
Passo 5: A seconda della direttiva iniettata, l'attaccante ottiene:
- Dirottamento DNS (reindirizza tutte le query DNS)
- Avvelenamento DHCP (spinge configurazioni malevole ai client)
- Esecuzione di comandi tramite le capacità di scripting di dnsmasq
- Scrittura di file in percorsi arbitrari
Il punto chiave è che non si tratta di sfruttare una vulnerabilità di dnsmasq: dnsmasq funziona come previsto. La vulnerabilità è che FTLDNS lascia che input non attendibili finiscano nel file di configurazione, trasformando un'API di gestione della configurazione in un punto di iniezione di configurazione arbitraria.
Il ricercatore (T0X1Cx) ha scoperto che lo stesso schema di iniezione di nuova riga colpisce cinque diversi parametri di configurazione FTLDNS. Questo è un problema sistemico: il codice mancava di sanificazione dell'input a tutto campo: