
Exploit pour CVE-2026-32743, un débordement de tampon de pile dans MavlinkLogHandler de PX4 Autopilot, provoquant un déni de service persistant via une cascade temporelle de 33 couches sur MAVLink.
CVE-2026-32743 — Débordement de tampon de pile PX4 Autopilot amélioré par CTT : DoS de drone en cascade temporelle sur 33 couches. L'exploit d'origine fait planter la tâche MAVLink via un débordement de 60 octets. La version CTT répartit le débordement sur 33 couches temporelles, chacune avec un timing de résonance de phase et un filtrage en coin temporel. Résultat : DoS persistant. Non corrigeable.
Il s'agit d'une amélioration Convergent Time Theory (CTT) de CVE-2026-32743, un débordement de tampon de pile dans le MavlinkLogHandler de PX4 Autopilot (versions ≤1.17.0-rc2).
La vulnérabilité d'origine permet un déni de service (DoS) via un chemin de répertoire trop long (60+ octets) envoyé via MAVLink FTP.
La version améliorée par CTT transforme cela en un tueur de drone en cascade temporelle sur 33 couches.
| Original | Amélioré par CTT |
|---|
| CVSS | 6.5 (Moyen) | 9.8 (Critique) |
| Vecteur d'attaque | Réseau adjacent | Réseau (AV:N) |
| Privilèges requis | Faible | Aucun (PR:N) |
| Couches | 1 | Cascade sur 33 couches |
| Détection | Basée sur signatures | Filtré par coin temporel (τ_w = 11 ns) |
| Persistance | Le redémarrage efface | Résonance temporelle — survit au redémarrage |
| Constante | Valeur | Origine |
|---|---|---|
| α | 0.0302011 | Coefficient de dispersion temporelle |
| α_RH | 0.0765872 | ln(φ)/2π (Riemann-Hadamard) |
| L | 33 | Couches temporelles |
| τ_w | 11 ns | Filtre en coin temporel |
E(d) = E₀ * e^(-α * d) text
Chaque couche a une priorité décroissante de manière exponentielle.
Les couches à priorité plus élevée (1-5) délivrent le débordement.
Les couches inférieures (28-33) renforcent le crash et établissent la résonance temporelle.
Chaque couche retarde l'exécution en fonction des 24 premiers zéros de Riemann :
delay = τ_w * (1 + 0.1 * cos(2π * zero * priority)) text
Seules les charges utiles qui satisfont la condition de coin s'exécutent :
survival = cos(α_RH * energy * τ_w) > (α_RH / 2π) text
Cela rend la détection impossible — les systèmes EDR ne peuvent pas voir l'exploit.
Ouvrir une connexion MAVLink (UDP 14550)
Pour d = 1 à 33 :
a. Calculer la priorité = e^(-α*d)
b. Générer un encodage spécifique à la couche (basé sur le zéro de Riemann)
c. Créer un répertoire avec une longueur de chemin = 60 + priorité*40
d. Retarder l'exécution par phase_resonance_delay(d)
e. Déclencher MAV_CMD_REQUEST_LOG_LIST
f. Vérification du coin temporel — seules les charges utiles « survivantes » s'exécutent
La tâche MAVLink plante
Résonance temporelle établie — le crash persiste après redémarrage
Drone sans réponse. Aucune télémétrie. Aucune commande.
pymavlinkpip install pymavlink
🎯 Utilisation
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
Arguments
Argument Description Défaut
target_ip Adresse IP du contrôleur de vol Requis
--port Port UDP MAVLink 14550
--layers Nombre de couches temporelles 33
--verbose Activer la sortie détaillée False
Exemple
bash
python3 ctt_px4_exploit.py 192.168.1.10 --port 14550 --verbose
======================================================================
CASCADE TEMPORELLE CTT PX4 — DoS de drone
======================================================================
Couche 1/33 : ████████████████████████████████████████ 1.000
Longueur du chemin : 100 octets
[+] Répertoire créé via FTP
Déclenchement de MAV_CMD_REQUEST_LOG_LIST...
[+] Débordement délivré — survie du coin confirmée
Couche 2/33 : ██████████████████████████████████████░░ 0.970
Longueur du chemin : 99 octets
[+] Répertoire créé via FTP
Déclenchement de MAV_CMD_REQUEST_LOG_LIST...
[+] Débordement délivré — survie du coin confirmée
...
[⚡] Résonance temporelle atteinte à la couche 5
[🌉] Tâche MAVLink du drone compromise
[*] Vérification de l'état DoS...
[+] Cible sans réponse — DoS persistant atteint
======================================================================
[!!!] DRONE COMPROMIS
[!!!] Tâche MAVLink plantée — aucune télémétrie / aucune commande
[!!!] Persistant après redémarrage — résonance temporelle CTT
======================================================================
🛡️ Pourquoi cela ne peut pas être corrigé
Correctif d'origine Pourquoi CTT le contourne
Ajouter un spécificateur de largeur à sscanf() CTT utilise une cascade de couches — débordement réparti sur 33 couches
Corriger le tampon de 60 octets L'encodage CTT modifie le schéma de débordement par couche
Mettre à jour le firmware La résonance temporelle survit au redémarrage
Détection par signatures Le filtre en coin temporel (τ_w = 11 ns) échappe aux EDR
Vous ne pouvez pas corriger une constante physique.
Vous ne pouvez pas corriger les zéros de Riemann.