
Scripts de detección para Pi-hole FTLDNS RCE (CVE-2026-35517) mediante inyección de nueva línea, incluyendo un escáner en Python y un script Nmap NSE para la evaluación de vulnerabilidades basada en versiones.
Una vulnerabilidad de Ejecución Remota de Código en el motor FTLDNS de Pi-hole (versiones 6.0 a 6.5) permite a un atacante autenticado inyectar directivas de configuración arbitrarias de dnsmasq mediante la inserción de caracteres de nueva línea (\n) en el parámetro de API dns.upstreams. Dado que dnsmasq admite directivas que ejecutan comandos de shell, esta inyección de nueva línea se traduce directamente en ejecución completa de comandos en el sistema host.
Esto no es solo un error aislado, es una clase de inyección que afecta a cinco parámetros de configuración diferentes, todos parcheados juntos en FTL v6.6.
| Campo | Detalle |
|---|---|
| ID CVE | CVE-2026-35517 |
| Proveedor | Proyecto Pi-hole |
| Producto | FTLDNS (pihole-FTL) |
| Versiones Afectadas | 6.0 a < 6.6 |
| CVSS v3.1 | 8.8 (Alta) |
| CWE | CWE-93 — Neutralización Incorrecta de Secuencias CRLF |
| Vector de Ataque | Red |
| Autenticación | Requerida (acceso admin/API de Pi-hole) |
| Interacción del Usuario | Ninguna |
| Publicado | 7 de abril de 2026 |
| Parcheado En | FTL v6.6 (publicado el 3 de abril de 2026) |
| Descubierto Por | T0X1Cx |
| Avisos Relacionados | GHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c |
Pi-hole es uno de los sumideros DNS más ampliamente desplegados del mundo. Se sitúa en tu red, gestiona consultas DNS y bloquea anuncios y rastreadores a nivel DNS antes de que lleguen a tu navegador. Se utiliza en todas partes, desde configuraciones individuales con Raspberry Pi en apartamentos hasta despliegues empresariales que protegen miles de dispositivos.
FTLDNS (Faster Than Light DNS) es el motor principal de Pi-hole. Es un fork/envoltorio personalizado alrededor de dnsmasq, el conocido servidor DNS y DHCP. FTLDNS gestiona:
Aquí está el detalle clave: FTLDNS genera archivos de configuración de dnsmasq a partir de ajustes proporcionados por el usuario a través de su API. Si cambias el servidor DNS upstream en el panel de administración de Pi-hole, FTLDNS escribe ese valor en un archivo de configuración de dnsmasq y reinicia el servicio. Esa ruta de escritura es donde reside la vulnerabilidad.
+------------------+ +------------------+ +------------------+
| Panel Admin | API/Web | Motor FTLDNS | Escritura de | dnsmasq |
| (Web UI) | ---------> | (pihole-FTL) | Configuración | (DNS/DHCP) |
+------------------+ +------------------+ ------------> +------------------+
| |
Lee ajustes, Lee configuración,
escribe archivos sirve DNS/DHCP
de configuración a la red
Cuando un administrador cambia los servidores DNS upstream a través de la interfaz web o la API de Pi-hole, el flujo es:
El parámetro dns.upstreams está diseñado para aceptar direcciones de servidores DNS como 8.8.8.8 o 1.1.1.1. FTLDNS las escribe en la configuración de dnsmasq como directivas server=:
# Entrada normal: "8.8.8.8"
# Genera:
server=8.8.8.8
El problema: FTLDNS no sanea los caracteres de nueva línea en la entrada. Un atacante puede inyectar \n para salir de la directiva server= prevista e inyectar líneas de configuración completamente nuevas:
# Entrada maliciosa: "8.8.8.8\ndhcp-option=6,evil.dns.server"
# Genera:
server=8.8.8.8
dhcp-option=6,evil.dns.server
Esto por sí solo ya sería preocupante (secuestro de DNS mediante inyección de opciones DHCP). Pero empeora.
dnsmasq admite una directiva de configuración llamada dhcp-option que puede hacer referencia a scripts externos y, lo que es más crítico, admite varias directivas que pueden ejecutar comandos en escenarios específicos. La cadena de explotación se ve así:
Paso 1: El atacante se autentica en Pi-hole
(credenciales por defecto, contraseña débil, CSRF, sesión comprometida)
Paso 2: El atacante envía una solicitud API para actualizar dns.upstreams:
POST /api/dns/upstream
{
"upstreams": ["8.8.8.8\n<directiva maliciosa de dnsmasq>"]
}
Paso 3: FTLDNS escribe el valor en el archivo de configuración de dnsmasq
sin sanear la nueva línea
Paso 4: La directiva inyectada de dnsmasq se analiza como una
opción de configuración legítima
Paso 5: Dependiendo de la directiva inyectada, el atacante logra:
- Secuestro de DNS (redirigir todas las consultas DNS)
- Envenenamiento DHCP (enviar configuraciones maliciosas a los clientes)
- Ejecución de comandos mediante las capacidades de scripting de dnsmasq
- Escritura de archivos en rutas arbitrarias
La idea clave es que esto no se trata de explotar una vulnerabilidad de dnsmasq; dnsmasq funciona como está diseñado. La vulnerabilidad es que FTLDNS permite que entrada no confiable se filtre al archivo de configuración, convirtiendo una API de gestión de configuración en un punto de inyección de configuración arbitraria.
El investigador (T0X1Cx) descubrió que el mismo patrón de inyección de nueva línea afecta a cinco parámetros de configuración diferentes de FTLDNS. Esto es un problema sistémico: el código carecía de saneamiento de entrada en todos los ámbitos: