Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/mbanyamer/cve-2026-32707-px4-autopilot-tattu_can-stack-buffer-overflow-dos-
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationTests d'IntrusionSécurité Matériel et IoTExploitation de Binaires
GitHubmbanyamer/cve-2026-32707-px4-autopilot-tattu_can-stack-buffer-overflow-dos-

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-32707-PX4-Autopilot-tattu_can-Stack-Buffer-Overflow-DoS-

Preuve de concept d'exploitation pour CVE-2026-32707, un débordement de tampon de pile dans le pilote tattu_can de PX4-Autopilot, provoquant un déni de service via des trames CAN spécialement conçues.

Voir le dépôt
il y a 3 moisPas encore vérifié

CVE-2026-32707 CVSS CWE Python Platform License Author

CVE-2026-32707 - Débordement de tampon de pile tattu_can dans PX4-Autopilot (DoS)

root@kitploit:~
╔════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                            ║
║   ██████╗  █████╗ ███╗   ██╗██╗   ██╗ █████╗ ███╗   ███╗███████╗██████╗                     ║
║   ██╔══██╗██╔══██╗████╗  ██║╚██╗ ██╔╝██╔══██╗████╗ ████║██╔════╝██╔══██╗                    ║
║   ██████╔╝███████║██╔██╗ ██║ ╚████╔╝ ███████║██╔████╔██║█████╗  ██████╔╝                    ║
║   ██╔══██╗██╔══██║██║╚██╗██║  ╚██╔╝  ██╔══██║██║╚██╔╝██║██╔══╝  ██╔══██╗                    ║
║   ██████╔╝██║  ██║██║ ╚████║   ██║   ██║  ██║██║ ╚═╝ ██║███████╗██║  ██║                    ║
║   ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═╝  ╚═╝                    ║
║                                                                                            ║
║                         [ b a n y a m e r _ s e c u r i t y ]                              ║
║                                                                                            ║
║                  ▸ Silent Hunter  |  Shadow Presence  |  Digital Intel ◂                  ║
║                                                                                            ║
║   Operator : Mohammed Idrees Banyamer  •  Jordan 🇯🇴                                       ║
║   Handle   : @banyamer_security                                                           ║
║                                                                                            ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝

Description

Ce dépôt contient une preuve de concept (PoC) pour CVE‑2026‑32707, un débordement de tampon basé sur la pile dans le pilote tattu_can du firmware du contrôleur de vol PX4‑Autopilot (versions ≤ 1.17.0‑rc1). La vulnérabilité réside dans la routine d'assemblage des messages multi‑trames : lors de la réassemblage d'une structure Tattu12SBatteryMessage sur la pile, le pilote effectue des opérations memcpy() sans limite sans vérifier le décalage cumulé par rapport à la taille du tampon (48 octets). Un attaquant capable d'injecter des trames CAN sur le même bus peut déclencher le débordement, provoquant une corruption de la pile et un crash subséquent (déni de service) du processus PX4.

Schéma du flux d'attaque

root@kitploit:~
sequenceDiagram
    participant Attacker as Attaquant (nœud CAN)
    participant CANbus as Bus CAN
    participant PX4 as PX4 Autopilot (tattu_can)
    
    Attacker->>CANbus: 1. Trame de début (DLC=8, data[7]=0x80)
    CANbus->>PX4: Début de transfert reçu
    PX4->>PX4: tampon tattu_message (48 octets)<br/>Décalage de copie = 5 octets
    
    loop Trampes de débordement (7x)
        Attacker->>CANbus: Trame de débordement (DLC=8, charge utile 7 octets)
        CANbus->>PX4: memcpy(dest+offset, payload, 7)
        PX4->>PX4: offset += 7
    end
    
    Attacker->>CANbus: Trame de débordement finale (DLC=8)
    CANbus->>PX4: memcpy(dest+offset, payload, 7)
    PX4->>PX4: offset > 48 → DÉBORDEMENT DE PILE
    PX4-->>PX4: Crash (segfault / défaut matériel)
    Note over PX4: Déni de service

Versions vulnérables et corrigées

  • Affecté : versions PX4‑Autopilot ≤ 1.17.0‑rc1 avec le pilote tattu_can activé
  • Corrigé : PX4‑Autopilot ≥ 1.17.0‑rc2 (commit 3f04b7a)

Prérequis

  • Python 3 avec la bibliothèque python-can
  • Linux avec prise en charge SocketCAN (la plupart des distributions)
  • Privilèges root (CAP_NET_RAW) pour envoyer des trames CAN brutes
  • Une interface CAN (physique can0 ou virtuelle vcan0)

Installation

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/mbanyamer/CVE-2026-32707-PoC.git
cd CVE-2026-32707-PoC

# Installer python-can
pip3 install python-can

# (Optionnel) Créer une interface CAN virtuelle pour les tests
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0

Utilisation

root@kitploit:~
sudo python3 exploit.py <interface_can>

Exemple

root@kitploit:~
# Exploit via l'interface CAN virtuelle (pour simulation/tests)
sudo python3 exploit.py vcan0

# Exploit via le bus CAN physique
sudo python3 exploit.py can0

Comment fonctionne l'exploit

  1. Trame de début de transfert – La première trame CAN (DLC=8) a son dernier octet défini sur 0x80, ce qui signale au pilote de commencer l'assemblage d'un nouveau Tattu12SBatteryMessage et copie les 5 premiers octets dans le tampon de pile.
  2. Trames de débordement – Sept trames CAN suivantes (chacune DLC=8) sont envoyées. Le pilote copie 7 octets par trame (DLC‑1) dans le tampon à partir du décalage 5. Après la 7ᵉ trame, le décalage cumulé dépasse 48 octets.
  3. Déclenchement final – Une trame supplémentaire déclenche le dernier memcpy() qui écrit au‑delà de la limite du tampon, corrompant la trame de pile.
  4. Résultat – Le processus PX4 plante (erreur de segmentation ou défaut matériel). Sur un véritable contrôleur de vol, cela conduit à un déni de service (perte de contrôle).

Sortie attendue

root@kitploit:~
[*] Envoi de la trame de début de transfert sur vcan0 (can_id=0x00000123)
[*] Envoi de 7 trames de débordement (chacune copie 7 octets)...
[*] Envoi de la trame de débordement finale...
[+] Séquence d'attaque terminée. Le pilote tattu_can de PX4 devrait maintenant planter.

Atténuation

  • Mettre à jour PX4‑Autopilot vers la version 1.17.0‑rc2 ou ultérieure.
  • Désactiver le pilote tattu_can s'il n'est pas requis (tattu_can stop ou le retirer de la compilation).
  • Appliquer le correctif manuellement (vérification des limites ajoutée dans le commit 3f04b7a) :
root@kitploit:~
while (receive(&received_frame) > 0) {
+   if (received_frame.payload_size == 0) {
+       break;
+   }
    size_t payload_size = received_frame.payload_size - 1;
-   // TODO: add check ...
+   if (offset + payload_size > sizeof(tattu_message)) {
+       break;
+   }
    memcpy(((char *)&tattu_message) + offset, received_frame.payload, payload_size);
    offset += payload_size;
}

Références

  • Avis de sécurité GitHub GHSA-wxwm-xmx9-hr32
  • Commit de correctif 3f04b7a
  • Fichier source vulnérable (avant correctif)
  • Entrée CVE-2026-32707 (NVD)

Crédits

  • Découvreur et auteur de la PoC – Mohammed Idrees Banyamer
  • Pays – Jordanie 🇯🇴
  • Instagram – @banyamer_security
  • GitHub – mbanyamer

Avertissement

Cette preuve de concept est fournie uniquement à des fins éducatives et de test de sécurité. Utilisez‑la uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test. L'auteur n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce code.

Télécharger l’outil