
Scripts de deteção para RCE no Pi-hole FTLDNS (CVE-2026-35517) via injeção de nova linha, incluindo scanner em Python e script Nmap NSE para avaliação de vulnerabilidade baseada em versão.
Uma vulnerabilidade de Execução Remota de Código no mecanismo FTLDNS do Pi-hole (versões 6.0 a 6.5) permite que um atacante autenticado injete diretivas arbitrárias de configuração do dnsmasq incorporando caracteres de nova linha (\n) no parâmetro dns.upstreams da API. Como o dnsmasq suporta diretivas que executam comandos de shell, essa injeção de nova linha se traduz diretamente em execução completa de comandos no sistema host.
Isso não é apenas um bug isolado, é uma classe de injeção que afeta cinco parâmetros de configuração diferentes, todos corrigidos juntos no FTL v6.6.
| Campo | Detalhe |
|---|---|
| ID CVE | CVE-2026-35517 |
| Fornecedor | Projeto Pi-hole |
| Produto | FTLDNS (pihole-FTL) |
| Versões Afetadas | 6.0 a < 6.6 |
| CVSS v3.1 | 8.8 (Alto) |
| CWE | CWE-93 — Neutralização Incorreta de Sequências CRLF |
| Vetor de Ataque | Rede |
| Autenticação | Necessária (acesso de administrador/API do Pi-hole) |
| Interação do Usuário | Nenhuma |
| Publicado | 7 de abril de 2026 |
| Corrigido Em | FTL v6.6 (lançado em 3 de abril de 2026) |
| Descoberto Por | T0X1Cx |
| Avisos Relacionados | GHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c |
O Pi-hole é um dos sumidouros de DNS mais amplamente implantados do mundo. Ele fica na sua rede, lida com consultas DNS e bloqueia anúncios e rastreadores no nível de DNS antes que eles cheguem ao seu navegador. É usado em todos os lugares, desde configurações únicas de Raspberry Pi em apartamentos até implantações empresariais que protegem milhares de dispositivos.
FTLDNS (Faster Than Light DNS) é o mecanismo central do Pi-hole. É um fork/wrapper personalizado em torno do dnsmasq, o conhecido servidor DNS e DHCP. O FTLDNS lida com:
Aqui está o detalhe principal: o FTLDNS gera arquivos de configuração do dnsmasq a partir de configurações fornecidas pelo usuário através de sua API. Se você alterar o servidor DNS upstream no painel de administração do Pi-hole, o FTLDNS grava esse valor em um arquivo de configuração do dnsmasq e reinicia o serviço. Esse caminho de gravação é onde a vulnerabilidade reside.
+------------------+ +------------------+ +------------------+
| Painel Admin | API/Web | Mecanismo | Gravação de | dnsmasq |
| (Web UI) | ---------> | FTLDNS | Configuração | (DNS/DHCP) |
+------------------+ | (pihole-FTL) | ------------> | |
+------------------+ +------------------+
| |
Lê configurações, Lê configuração,
grava em arquivos atende DNS/DHCP
de configuração na rede
Quando um administrador altera os servidores DNS upstream através da interface web ou API do Pi-hole, o fluxo é:
O parâmetro dns.upstreams destina-se a aceitar endereços de servidores DNS como 8.8.8.8 ou 1.1.1.1. O FTLDNS os grava na configuração do dnsmasq como diretivas server=:
# Entrada normal: "8.8.8.8"
# Gera:
server=8.8.8.8
O problema: o FTLDNS não sanitiza caracteres de nova linha na entrada. Um atacante pode injetar \n para sair da diretiva server= pretendida e injetar linhas de configuração inteiramente novas:
# Entrada maliciosa: "8.8.8.8\ndhcp-option=6,evil.dns.server"
# Gera:
server=8.8.8.8
dhcp-option=6,evil.dns.server
Isso por si só já seria preocupante (sequestro de DNS via injeção de opção DHCP). Mas fica pior.
O dnsmasq suporta uma diretiva de configuração chamada dhcp-option que pode referenciar scripts externos e, mais criticamente, suporta várias diretivas que podem executar comandos em cenários específicos. A cadeia de exploração se parece com isto:
Passo 1: O atacante se autentica no Pi-hole
(credenciais padrão, senha fraca, CSRF, sessão comprometida)
Passo 2: O atacante envia uma solicitação de API para atualizar dns.upstreams:
POST /api/dns/upstream
{
"upstreams": ["8.8.8.8\n<diretiva maliciosa do dnsmasq>"]
}
Passo 3: O FTLDNS grava o valor no arquivo de configuração do dnsmasq
sem sanitizar a nova linha
Passo 4: A diretiva injetada do dnsmasq é interpretada como uma
opção de configuração legítima
Passo 5: Dependendo da diretiva injetada, o atacante alcança:
- Sequestro de DNS (redirecionar todas as consultas DNS)
- Envenenamento de DHCP (enviar configurações maliciosas aos clientes)
- Execução de comandos via capacidades de script do dnsmasq
- Gravação de arquivos em caminhos arbitrários
O ponto principal é que isso não se trata de explorar uma vulnerabilidade do dnsmasq — o dnsmasq está funcionando como projetado. A vulnerabilidade é que o FTLDNS permite que entrada não confiável vaze para o arquivo de configuração, transformando uma API de gerenciamento de configuração em um ponto de injeção de configuração arbitrária.
O pesquisador (T0X1Cx) descobriu que o mesmo padrão de injeção de nova linha afeta cinco parâmetros de configuração diferentes do FTLDNS. Isso é um problema sistêmico — o código carecia de sanitização de entrada em toda a extensão: