Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-32707-PX4-Autopilot-tattu_can-Stack-Buffer-Overflow-DoS- — CVE-2026-32707 的概念验证漏洞利用程序,针对 PX4-Autopilot tattu_can 驱动程序中的栈缓冲区溢出漏洞,通过精心构造的 CAN 帧导致拒绝服务。 | Kitploit
工具/GitHubGitHub/mbanyamer/cve-2026-32707-px4-autopilot-tattu_can-stack-buffer-overflow-dos-
嵌入式系统安全物联网安全漏洞分析漏洞利用渗透测试硬件与物联网安全二进制利用
GitHubmbanyamer/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 帧导致拒绝服务。

查看仓库
3个月前尚未审核

CVE-2026-32707 CVSS CWE Python Platform License Author

CVE-2026-32707 - PX4-Autopilot tattu_can 栈缓冲区溢出(拒绝服务)

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                                                           ║
║                                                                                            ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝

描述

本仓库包含针对 CVE‑2026‑32707 的概念验证(PoC)漏洞利用,该漏洞是 PX4‑Autopilot 飞行控制器固件(版本 ≤ 1.17.0‑rc1)中 tattu_can 驱动程序的基于栈的缓冲区溢出。该漏洞位于多帧消息组装例程中:当在栈上重新组装 Tattu12SBatteryMessage 结构时,驱动程序执行无界 memcpy() 操作,而未检查累积偏移量是否超过缓冲区大小(48 字节)。能够向同一总线注入 CAN 帧的攻击者可触发溢出,导致栈损坏并随后使 PX4 进程崩溃(拒绝服务)。

攻击流程示意图

root@kitploit:~
sequenceDiagram
    participant Attacker as 攻击者(CAN 节点)
    participant CANbus as CAN 总线
    participant PX4 as PX4 自动驾驶仪(tattu_can)
    
    Attacker->>CANbus: 1. 起始帧(DLC=8,data[7]=0x80)
    CANbus->>PX4: 收到传输开始
    PX4->>PX4: tattu_message 缓冲区(48 字节)<br/>复制偏移量=5 字节
    
    loop 溢出帧(7 次)
        Attacker->>CANbus: 溢出帧(DLC=8,负载 7 字节)
        CANbus->>PX4: memcpy(dest+offset, payload, 7)
        PX4->>PX4: offset += 7
    end
    
    Attacker->>CANbus: 最终溢出帧(DLC=8)
    CANbus->>PX4: memcpy(dest+offset, payload, 7)
    PX4->>PX4: offset > 48 → 栈溢出
    PX4-->>PX4: 崩溃(段错误 / 硬故障)
    Note over PX4: 拒绝服务

受影响与已修复版本

  • 受影响:启用 tattu_can 驱动程序的 PX4‑Autopilot 版本 ≤ 1.17.0‑rc1
  • 已修复:PX4‑Autopilot ≥ 1.17.0‑rc2(提交 3f04b7a)

环境要求

  • Python 3 及 python-can 库
  • 支持 SocketCAN 的 Linux 系统(大多数发行版)
  • Root 权限(CAP_NET_RAW)以发送原始 CAN 帧
  • CAN 接口(物理 can0 或虚拟 vcan0)

安装

root@kitploit:~
# 克隆仓库
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

使用方法

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

示例

root@kitploit:~
# 通过虚拟 CAN 接口进行漏洞利用(用于模拟/测试)
sudo python3 exploit.py vcan0

# 通过物理 CAN 总线进行漏洞利用
sudo python3 exploit.py can0

漏洞利用原理

  1. 传输起始帧 – 第一个 CAN 帧(DLC=8)的最后一个字节设置为 0x80,这向驱动程序发出信号,开始组装新的 Tattu12SBatteryMessage,并将前 5 个字节复制到栈缓冲区中。
  2. 溢出帧 – 发送七个后续 CAN 帧(每个 DLC=8)。驱动程序每帧将 7 个字节(DLC‑1)从偏移量 5 开始复制到缓冲区中。在第 7 帧之后,累积偏移量超过 48 字节。
  3. 最终触发 – 一个额外帧触发最后一次 memcpy(),写入超出缓冲区边界,破坏栈帧。
  4. 结果 – PX4 进程崩溃(段错误或硬故障)。在真实飞行控制器上,这会导致拒绝服务(失去控制)。

预期输出

root@kitploit:~
[*] 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 中添加了边界检查):
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;
}

参考资料

  • GitHub 安全公告 GHSA-wxwm-xmx9-hr32
  • 修复提交 3f04b7a
  • 存在漏洞的源文件(修复前)
  • CVE-2026-32707 条目(NVD)

致谢

  • 发现者与 PoC 作者 – Mohammed Idrees Banyamer
  • 国家 – 约旦 🇯🇴
  • Instagram – @banyamer_security
  • GitHub – mbanyamer

免责声明

本概念验证仅供教育和安全测试目的使用。请仅在你拥有或获得明确测试许可的系统上使用。作者不对因使用本代码造成的任何滥用或损害负责。

下载工具