Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-32707-PX4-Autopilot-tattu_can-Stack-Buffer-Overflow-DoS- — CVE-2026-32707에 대한 개념 증명 익스플로잇으로, PX4-Autopilot tattu_can 드라이버의 스택 버퍼 오버플로우를 이용하여 조작된 CAN 프레임을 통해 서비스 거부(DoS)를 유발합니다. | Kitploit
도구/GitHubGitHub/mbanyamer/cve-2026-32707-px4-autopilot-tattu_can-stack-buffer-overflow-dos-
Embedded Systems SecurityIoT SecurityVulnerability AnalysisExploitationPenetration TestingHardware & IoT SecurityBinary Exploitation
GitHub

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
mbanyamer/cve-2026-32707-px4-autopilot-tattu_can-stack-buffer-overflow-dos-

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

CVE-2026-32707에 대한 개념 증명 익스플로잇으로, PX4-Autopilot tattu_can 드라이버의 스택 버퍼 오버플로우를 이용하여 조작된 CAN 프레임을 통해 서비스 거부(DoS)를 유발합니다.

저장소 보기
155개월 전아직 검토되지 않음

CVE-2026-32707 CVSS CWE Python Platform License Author

CVE-2026-32707 - PX4-Autopilot tattu_can 스택 버퍼 오버플로우 (DoS)

╔════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                            ║
║   ██████╗  █████╗ ███╗   ██╗██╗   ██╗ █████╗ ███╗   ███╗███████╗██████╗                     ║
║   ██╔══██╗██╔══██╗████╗  ██║╚██╗ ██╔╝██╔══██╗████╗ ████║██╔════╝██╔══██╗                    ║
║   ██████╔╝███████║██╔██╗ ██║ ╚████╔╝ ███████║██╔████╔██║█████╗  ██████╔╝                    ║
║   ██╔══██╗██╔══██║██║╚██╗██║  ╚██╔╝  ██╔══██║██║╚██╔╝██║██╔══╝  ██╔══██╗                    ║
║   ██████╔╝██║  ██║██║ ╚████║   ██║   ██║  ██║██║ ╚═╝ ██║███████╗██║  ██║                    ║
║   ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═╝  ╚═╝                    ║
║                                                                                            ║
║                         [ 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                                                           ║
║                                                                                            ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝

설명

이 저장소는 PX4-Autopilot 비행 컨트롤러 펌웨어(버전 ≤ 1.17.0-rc1)의 tattu_can 드라이버에서 발생하는 CVE-2026-32707에 대한 개념 증명(PoC) 익스플로잇을 포함합니다. 이 취약점은 다중 프레임 메시지 조립 루틴에 존재합니다. 스택에서 Tattu12SBatteryMessage 구조체를 재조립할 때, 드라이버는 누적 오프셋을 버퍼 크기(48바이트)와 비교하지 않고 무제한 memcpy() 작업을 수행합니다. 동일한 버스에 CAN 프레임을 주입할 수 있는 공격자는 오버플로우를 트리거하여 스택 손상 및 이후 PX4 프로세스의 충돌(서비스 거부)을 유발할 수 있습니다.

공격 흐름 다이어그램

sequenceDiagram
    participant Attacker as Attacker (CAN Node)
    participant CANbus as CAN Bus
    participant PX4 as PX4 Autopilot (tattu_can)
    
    Attacker->>CANbus: 1. Start frame (DLC=8, data[7]=0x80)
    CANbus->>PX4: Start-of-transfer received
    PX4->>PX4: tattu_message buffer (48 bytes)<br/>Copy offset=5 bytes
    
    loop Overflow frames (7x)
        Attacker->>CANbus: Overflow frame (DLC=8, payload 7 bytes)
        CANbus->>PX4: memcpy(dest+offset, payload, 7)
        PX4->>PX4: offset += 7
    end
    
    Attacker->>CANbus: Final overflow frame (DLC=8)
    CANbus->>PX4: memcpy(dest+offset, payload, 7)
    PX4->>PX4: offset > 48 → STACK OVERFLOW
    PX4-->>PX4: Crash (segfault / hard fault)
    Note over PX4: Denial of Service

취약한 버전 및 수정된 버전

  • 영향: tattu_can 드라이버가 활성화된 PX4-Autopilot 버전 ≤ 1.17.0-rc1
  • 수정됨: PX4-Autopilot ≥ 1.17.0-rc2 (커밋 3f04b7a)

요구 사항

  • python-can 라이브러리가 포함된 Python 3
  • SocketCAN을 지원하는 Linux (대부분의 배포판)
  • 원시 CAN 프레임을 전송하기 위한 루트 권한 (CAP_NET_RAW)
  • CAN 인터페이스 (물리적 can0 또는 가상 vcan0)

설치

# 저장소 클론
git clone https://github.com/mbanyamer/CVE-2026-32707-PoC.git
cd CVE-2026-32707-PoC

# python-can 설치
pip3 install python-can

# (선택 사항) 테스트용 가상 CAN 인터페이스 생성
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0

사용법

sudo python3 exploit.py <can_interface>

예시

# 가상 CAN 인터페이스를 통한 익스플로잇 (시뮬레이션/테스트용)
sudo python3 exploit.py vcan0

# 물리적 CAN 버스를 통한 익스플로잇
sudo python3 exploit.py can0

익스플로잇 작동 방식

  1. 전송 시작 프레임 – 첫 번째 CAN 프레임(DLC=8)의 마지막 바이트가 0x80으로 설정되어, 드라이버가 새 Tattu12SBatteryMessage 조립을 시작하고 처음 5바이트를 스택 버퍼에 복사하도록 신호를 보냅니다.
  2. 오버플로우 프레임 – 7개의 후속 CAN 프레임(각각 DLC=8)이 전송됩니다. 드라이버는 오프셋 5에서 시작하여 프레임당 7바이트(DLC-1)를 버퍼에 복사합니다. 7번째 프레임 이후 누적 오프셋이 48바이트를 초과합니다.
  3. 최종 트리거 – 추가 프레임이 버퍼 경계를 넘어 쓰는 마지막 memcpy()를 트리거하여 스택 프레임을 손상시킵니다.
  4. 결과 – PX4 프로세스가 충돌합니다(세그멘테이션 오류 또는 하드 폴트). 실제 비행 컨트롤러에서는 서비스 거부(제어 손실)로 이어집니다.

예상 출력

[*] Sending start-of-transfer frame on vcan0 (can_id=0x00000123)
[*] Sending 7 overflow frames (each copies 7 bytes)...
[*] Sending final overflow frame...
[+] Attack sequence completed. The PX4 tattu_can driver should now crash.

완화 조치

  • PX4-Autopilot을 버전 1.17.0-rc2 이상으로 업데이트하세요.
  • 필요하지 않은 경우 tattu_can 드라이버를 비활성화하세요 (tattu_can stop 또는 빌드에서 제거).
  • 커밋 3f04b7a에 추가된 경계 검사를 수동으로 패치하세요:
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;
}

참고 자료

  • GitHub Security Advisory GHSA-wxwm-xmx9-hr32
  • 수정 커밋 3f04b7a
  • 취약한 소스 파일 (수정 전)
  • CVE-2026-32707 항목 (NVD)

크레딧

  • 발견자 및 PoC 작성자 – Mohammed Idrees Banyamer
  • 국가 – Jordan 🇯🇴
  • Instagram – @banyamer_security
  • GitHub – mbanyamer

면책 조항

이 개념 증명은 교육 및 보안 테스트 목적으로만 제공됩니다. 소유한 시스템이나 테스트에 대한 명시적 허가를 받은 시스템에서만 사용하세요. 작성자는 이 코드의 오용이나 이로 인한 손해에 대해 책임을 지지 않습니다.

도구 다운로드