Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-35517 — 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. | Kitploit
Strumenti/GitHubGitHub/keraattin/cve-2026-35517
Scanner di VulnerabilitàExploitRaccolta InformazioniSicurezza WebSicurezza di RetePenetration Testing
GitHubkeraattin/cve-2026-35517

CVE-2026-35517

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.

Vedi Repository
45 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-35517 - Pi-hole FTLDNS Remote Code Execution tramite Newline Injection

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

TL;DR

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.


Indice

  • Fatti rapidi
  • Cos'è Pi-hole FTLDNS?
  • Analisi approfondita della vulnerabilità
    • Comprendere l'architettura
    • Il punto di iniezione
    • Dalla nuova riga alla shell — La kill chain
    • L'intera famiglia — Cinque vettori di iniezione
  • Analisi dell'impatto
  • Versioni interessate
  • Chi è a rischio?
  • Rilevamento
    • Scanner Python
    • Script Nmap NSE
    • Verifica manuale della versione
  • Indicatori di compromissione
  • Rimedi
  • Riferimenti
  • Autore

Fatti rapidi

CampoDettaglio
ID CVECVE-2026-35517
VenditorePi-hole Project
ProdottoFTLDNS (pihole-FTL)
Versioni interessate6.0 a < 6.6
CVSS v3.18.8 (Alto)
CWECWE-93 — Neutralizzazione impropria delle sequenze CRLF
Vettore di attaccoRete
AutenticazioneRichiesta (accesso admin/API Pi-hole)
Interazione utenteNessuna
Pubblicata7 aprile 2026
Corretta inFTL v6.6 (rilasciata il 3 aprile 2026)
Scoperta daT0X1Cx
Avvisi correlatiGHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c

Cos'è Pi-hole FTLDNS?

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:

  • Risoluzione e caching delle query DNS
  • Blocco a livello DNS (la funzione principale di Pi-hole)
  • Funzionalità di server DHCP
  • Registrazione e statistiche delle query
  • L'API con cui comunica l'interfaccia web

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à.


Analisi approfondita della vulnerabilità

Comprendere l'architettura

root@kitploit:~
+------------------+            +------------------+               +------------------+
|   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 è:

  1. La web UI invia una richiesta all'API FTLDNS con il nuovo valore DNS upstream
  2. FTLDNS valida l'input (o meglio, non riesce a validarlo correttamente)
  3. FTLDNS scrive il valore in una direttiva di configurazione dnsmasq
  4. dnsmasq viene riavviato e legge la nuova configurazione

Il punto di iniezione

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=:

root@kitploit:~
# 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:

root@kitploit:~
# 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.

Dalla nuova riga alla shell — La kill chain

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:

root@kitploit:~
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.

L'intera famiglia — Cinque vettori di iniezione

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:

AvvisoParametroCosa controlla
GHSA-23w8-7333-p9fjdns.upstreamsServer DNS upstream
GHSA-wxhv-w77q-6qwpdns.hostRecordRecord host DNS personalizzati
GHSA-28g5-gg88-wh5mdns.cnameRecordsMappature record CNAME
GHSA-fqv2-qhfh-ghcjdhcp.leaseTimeDurata lease DHCP
GHSA-vfmq-jrx3-wv3cdhcp.hostsAssegnazioni host DHCP statiche

Ognuno di questi parametri scrive in file di configurazione dnsmasq e ognuno non riusciva a sanificare i caratteri di nuova riga. La correzione in FTL v6.6 ha aggiunto una validazione dell'input adeguata che rifiuta i caratteri di nuova riga (e altri caratteri di controllo) su tutti i parametri di configurazione.


Analisi dell'impatto

Sull'host Pi-hole:

  • Esecuzione completa di comandi con i privilegi del processo FTLDNS (tipicamente root o utente pihole)
  • Poiché Pi-hole gira spesso su dispositivi dedicati (Raspberry Pi) o come container privilegiato, questo significa frequentemente accesso root
  • Accesso in lettura/scrittura al filesystem dell'host
  • Persistenza tramite cron job, chiavi SSH o file di sistema modificati

Sulla rete (impatto a valle):

  • Dirottamento DNS — reindirizza tutte le query DNS verso server controllati dall'attaccante
  • Avvelenamento DHCP — spinge impostazioni DNS, gateway o NTP malevole a tutti i client DHCP
  • Posizionamento man-in-the-middle — controllando il DNS, l'attaccante può reindirizzare il traffico per qualsiasi dominio
  • Raccolta di credenziali — reindirizza gli endpoint di autenticazione verso server di phishing
  • Distribuzione di malware — reindirizza i domini di aggiornamento software per servire payload malevoli

Fattori di amplificazione del rischio:

  • Pi-hole è spesso l'unico server DNS sulla rete: compromettilo e controlli la risoluzione dei nomi per ogni dispositivo
  • Molte installazioni di Pi-hole usano password admin predefinite o deboli
  • Le istanze Pi-hole sono frequentemente esposte all'intera rete locale, non solo agli amministratori
  • Gli attacchi CSRF contro l'interfaccia web di Pi-hole potrebbero innescare lo sfruttamento senza autenticazione diretta

Versioni interessate

VersioneStato
FTLDNS 6.6+Corretta
FTLDNS 6.0 – 6.5Vulnerabile
FTLDNS 5.x e precedentiNon interessata (architettura API diversa)

Per verificare la tua versione:

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

Chi è a rischio?

Rischio alto:

  • Istanze Pi-hole accessibili da segmenti di rete non attendibili
  • Distribuzioni che usano password admin predefinite o deboli
  • Pi-hole esposto a internet (sorprendentemente comune su Shodan)
  • Ambienti di hosting condiviso dove più utenti accedono alla stessa rete

Rischio moderato:

  • Istanze Pi-hole in reti domestiche ben segmentate con password forti
  • Distribuzioni dietro VPN con autenticazione multifattore

Rischio più basso (ma correggi comunque):

  • Istanze Pi-hole air-gapped o completamente isolate
  • Distribuzioni in sola lettura o con API disabilitata

Rilevamento

Scanner Python

Lo script Python rileva le istanze Pi-hole vulnerabili tramite analisi basata sulla versione.

Come funziona:

  1. Fingerprinting — Identifica Pi-hole tramite indicatori dell'interfaccia admin (contenuto della pagina, header)
  2. Query versione API — Interroga sia gli endpoint API Pi-hole v5 che v6 per le informazioni sulla versione FTL
  3. Confronto versioni — Analizza la stringa della versione FTL e la verifica rispetto all'intervallo vulnerabile (6.0 ≤ v < 6.6)
  4. CVE correlati — Se vulnerabile, segnala tutti e cinque gli avvisi di iniezione di nuova riga correlati

Non vengono inviati payload di iniezione. Il test è interamente in sola lettura e sicuro.

Utilizzo:

root@kitploit:~
# Installa le dipendenze
pip install -r requirements.txt

# Singolo target (HTTP, porta predefinita 80)
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1

# Porta personalizzata
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t pi.hole -p 8080

# Modalità HTTPS (passa automaticamente alla porta 443)
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 10.0.0.1 --https

# Scansione di massa da file
python CVE-2026-35517_PiHole_FTLDNS_detector.py -f targets.txt

# Output JSON salvato su file
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --json -o results.json

# Timeout aumentato
python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --timeout 20

Opzioni:

FlagDescrizionePredefinito
-t, --targetIP o hostname del target—
-f, --fileFile con i target, uno per riga (commenti # supportati)—
-p, --portPorta del target80
--httpsUsa HTTPS (passa automaticamente alla porta 443 se la porta è 80)Off
--timeoutTimeout di connessione in secondi10
--jsonOutput in formato JSONOff
-o, --outputSalva i risultati su un file—

Esempio di output:

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)

Script Nmap NSE

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

# Scansione di base
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS <target>

# Scansiona le porte comuni di Pi-hole
nmap -p 80,443,8080,4711 --script CVE-2026-35517_PiHole_FTLDNS <target>

# Scansione sottorete — trova tutte le istanze Pi-hole su una rete
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS 192.168.1.0/24

# Combinato con rilevamento versione
nmap -sV -p 80,443 --script CVE-2026-35517_PiHole_FTLDNS <target>

# Scansiona i target da un file
nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS -iL targets.txt

Esempio di output Nmap:

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

Verifica manuale della versione

Se hai accesso SSH all'host Pi-hole:

root@kitploit:~
# Controlla la versione FTL
pihole-FTL --version

# Oppure tramite la CLI di Pi-hole
pihole -v

# Controlla tramite API (v6)
curl -s http://pi.hole/api/info/version | python3 -m json.tool

# Controlla tramite API (v5)
curl -s http://pi.hole/admin/api.php?versions | python3 -m json.tool

Se la versione FTL è compresa tra 6.0 e 6.5 (inclusi), sei vulnerabile.


Indicatori di compromissione

Cosa cercare:

  • Voci di configurazione dnsmasq insolite — Controlla /etc/dnsmasq.d/ e /etc/pihole/ per direttive inaspettate
  • Impostazioni DNS upstream modificate — Verifica che i tuoi server upstream configurati non siano stati cambiati
  • Chiamate API inaspettate — Esamina il log delle query di Pi-hole e i log di accesso API per richieste di modifica della configurazione
  • Comportamento DNS anomalo — Client che risolvono domini verso indirizzi IP inaspettati
  • Nuovi cron job o chiavi SSH — Se l'host è stato compromesso tramite esecuzione di comandi
  • Anomalie nei processi — Processi figlio inaspettati generati da dnsmasq o pihole-FTL

Comandi per indagare:

root@kitploit:~
# Controlla le config dnsmasq per linee iniettate
grep -r "dhcp-option\|addn-hosts\|conf-file\|log-facility" /etc/dnsmasq.d/

# Controlla le modifiche recenti alla configurazione
find /etc/pihole /etc/dnsmasq.d -mtime -7 -ls

# Esamina il log di debug di Pi-hole
pihole -d

# Controlla i processi in esecuzione per anomalie
ps aux | grep -E "dnsmasq|pihole"

# Esamina il crontab per la persistenza
crontab -l
cat /etc/crontab
ls -la /etc/cron.d/

Rimedi

Azione immediata — aggiorna subito:

root@kitploit:~
# Aggiorna Pi-hole (include FTL, Web e Core)
pihole -up

# Verifica l'aggiornamento
pihole -v
# La versione FTL dovrebbe essere >= 6.6

Se non puoi aggiornare immediatamente:

  1. Limita l'accesso API — Configura Pi-hole per accettare connessioni API solo da IP attendibili
  2. Cambia la password admin — Usa una password forte e unica: pihole -a -p
  3. Isolamento di rete — Assicurati che l'interfaccia admin di Pi-hole sia accessibile solo da una VLAN di gestione
  4. Disabilita l'API remota — Se usi solo la web UI locale, limita l'API a localhost

Azioni post-patch:

  1. Controlla la configurazione DNS — Esamina tutti i file di configurazione dnsmasq per direttive iniettate
  2. Verifica i server upstream — Conferma che le impostazioni DNS upstream siano corrette
  3. Controlla la persistenza — Cerca cron job non autorizzati, chiavi SSH o file di sistema modificati
  4. Esamina i lease DHCP — Se il DHCP è gestito da Pi-hole, verifica le configurazioni dei lease
  5. Monitora il comportamento DNS — Osserva pattern di risoluzione anomali nei prossimi giorni

Riferimenti

  • 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

Autore

Kerem Oruç - Ingegnere della cybersecurity

  • GitHub: @keraattin
  • Twitter: @keraattin
Scarica lo strumento