CVE-2026-32724CVE-2026-32724是存在于PX4 Autopilot无人机飞行控制软件中的一个高危安全漏洞。该漏洞为堆使用后释放(Heap-Use-After-Free)类型,产生于MavlinkShell::available()函数中。漏洞的根本原因在于MAVLink接收器线程(负责shell的创建和销毁)与遥测发送器线程(轮询shell可用输出)之间存在竞态条件。攻击者可通过外部地面站或自动化脚本发送特制的MAVLink SERIAL_CONTROL消息(消息ID 126)来远程触发此漏洞。在1.17.0-rc1之前的版本均受此漏洞影响,成功利用可导致无人机系统可用性下降,可能引发程序崩溃或异常行为。鉴于该漏洞具有远程可触发性且无需认证,建议受影响用户尽快升级至修复版本。
漏洞存在于PX4 Autopilot的MAVLink通信模块中,具体为MavlinkShell类的available()方法。该函数在多线程环境下运行时存在竞态条件:MAVLink接收器线程负责处理shell实例的创建和销毁操作,而遥测发送器线程则定期轮询shell对象以检查是否有可用输出。当两个线程并发访问共享的shell对象时,可能出现以下时序问题:遥测线程持有指向shell对象的指针并调用available()方法时,该对象恰好被接收器线程释放但尚未被完全销毁或重新分配。这种情况下,available()函数会访问已被释放的堆内存区域,导致堆使用后释放漏洞。攻击者通过发送ID为126的SERIAL_CONTROL MAVLink消息,可控制shell的生命周期,增加触发竞态条件的概率。该漏洞的攻击复杂度较高(AC:H),需要精确的时序控制才能成功利用,但一旦触发将导致程序崩溃,影响无人机的飞行控制可用性。