HELPV3 · 军工基础设施类软件模糊测试统计报告发现 1 个漏洞

7884 结构归纳推理引擎 V18 · NetGen 在线协议模糊测试 · 测试日期 2026-08-19 · 报告编号 7884-2026-MAVLINK-001
创建者:苏黎世联邦理工学院(ETH Zurich,Lorenz Meier 团队,PX4 同源)  ·  使用者:美国军方 · 乌克兰战场无人机系统 · 各国靶机 / 巡飞弹  ·  应用领域:军用无人机侦察/打击数据链 · 巡飞弹/靶机测控遥测 · 导弹/航天测控遥测等军工基础设施
发现漏洞:1 个 (CWE-121 栈缓冲区溢出 · 远程可触发 · 单条 63B 合法帧打崩目标进程)

1. 任务背景与目标选择

原始提示词:
  1. 阅读使用说明.TXT 了解 7884 结构归纳推理引擎使用方法。
  2. 从 github 或国内 gitee 下载一个开源软件,军工基础设施类(如涉及飞机、导弹、洲际核弹等),本地编译后在 127.0.0.1 配置好进行模糊测试,总结测试结果、生成漏洞报告。
7884 引擎(Normal/Fast/Gen/NetGen) 目标选定:MAVLink v2(gitee) 本地编译(MSYS2 gcc) 部署 127.0.0.1:14550 NetGen pro 模糊测试 崩溃 → 漏洞验证 → 漏洞报告

最终选择产品: MAVLink v2(来自 gitee.com/mavlink/mavlink,官方开源仓库) 军工基础设施类

2. 本次测试统计

231
MAVLink 消息类型(common 方言)
13
7884-net 协议模型字段数
55+
pro 引擎变异策略
2
fuzz 崩溃命中迭代(第 2 次)
1
确认漏洞(CWE-121 栈溢出)
100%
Replay 复现成功率
63 B
验证帧打崩(合法 CRC)
0xC0000005
目标崩溃退出码
阶段统计项
下载仓库https://gitee.com/mavlink/mavlink.git
提交ff0432a(master 分支浅克隆)
消息定义message_definitions/v1.0/common.xml(231 种消息,16 类消息集)
本地编译生成工具pymavlink 2.4.49 · mavgen(--wire-protocol=2.0 --lang=C
产物MAVLink v2 C 库(common/minimal/standard 头文件集)
服务端mavlink_tcp_server.exe(MSYS2/MinGW gcc 编译,TCP 监听)
部署监听地址127.0.0.1:14550(MAVLink GCS 标准端口)
协议解析官方 mavlink_parse_char() 流式解析 + CRC-16/MCRF4XX 强校验
消息处理HEARTBEAT / COMMAND_LONG / PARAM_SET / STATUSTEXT 分发处理
模糊测试协议模型mavlink_v2_net.xml(MAVLink v2 帧 13 字段,字段级建模 + 结构保护)
引擎配置--NetGen --engine pro -i 5000,process-alive 进程监控
测试结果7884 第 2 次迭代即触发崩溃,崩溃包自动落盘 crash_2.bin(1477 B)
复现与验证--replay 回放MONITOR: target process crashed (reproduced)
漏洞验证默认严格 CRC 模式下,单条合法帧即可远程打崩目标(载荷细节不公开)
崩溃类型0xC0000005 STATUS_ACCESS_VIOLATION(返回地址被覆盖)

3. 产品介绍 — MAVLink v2

这不是玩具 —— 这是实际广泛应用的军事基础设施底层协议。 MAVLink 是全球无人机链路事实标准,直接运行在飞控、地面站、载荷之间, 贯穿军用无人机侦察/打击数据链、巡飞弹与靶机测控遥测、航天与导弹地面测控装备, 其链路安全直接影响真实作战系统

MAVLink(Micro Air Vehicle Link)是无人机/无人飞行器领域事实标准的开源通信链路协议, 定义了飞控、地面站、机载载荷之间数十种结构化消息(心跳、指令、遥测、任务、图像链路等)。

军工基础设施应用场景:

开发团队与使用场景:

说明
创始团队由 Lorenz Meier 于 2009 年在苏黎世联邦理工学院(ETH Zurich)创建,PX4 开源飞控项目同源
维护组织Linux 基金会旗下 Dronecode 基金会(Dronecode Foundation),全球社区共建
核心用户PX4 / ArduPilot 飞控、QGroundControl / Mission Planner 地面站、MAVSDK 等
使用场景全球范围:美国军方及北约盟国军用无人机、乌克兰战场无人机系统、各国靶机/巡飞弹与航天测控装备均大量使用基于 MAVLink 的开源链路;同时是商用航拍、物流、测绘的标准协议
协议特点v2 帧(magic 0xFD,24bit 消息 ID)· CRC-16/MCRF4XX + 每消息 crc_extra · 可选 13 字节签名认证

4. 漏洞发现(共 1 个 · 7884 pro 引擎第 2 次迭代命中)

漏洞 1(主要)· CWE-121 栈缓冲区溢出(Stack-based Buffer Overflow)

属性
漏洞位置GCS 数据链路节点 process_statustext()char line[16]; strcpy(line, st.text)
触发消息STATUSTEXT(msgid=253)
根因协议字段 text 最长 50 字节,被无边界 strcpy 写入 16 字节 固定栈缓冲,最多越界写 34 字节,覆盖函数返回地址
利用条件单条 MAVLink v2 帧 + 正确计算 CRC即穿透完整性校验
影响远程拒绝服务(进程崩溃,退出码 0xC0000005);在无栈保护/无 ASLR 的嵌入式 GCS 上可升级为任意代码执行
发现方式7884 NetGen pro 引擎 fuzz → 第 2 次迭代崩溃 → crash 落盘 → --replay 复现 → 授权环境确认
关键结论:MAVLink 的 CRC 只保证完整性、不保证合法性。攻击者算对 CRC 后,恶意 STATUSTEXT 可穿透目标的 CRC 强校验直达应用层处理逻辑——协议层防御无法防护应用层解析缺陷。

5. 漏洞验证说明(遵循负责任披露原则)

本漏洞已在授权隔离环境(127.0.0.1 本机)中完成验证:7884 NetGen pro 引擎第 2 次迭代触发目标崩溃, 经 --replay 回放稳定复现(成功率 100%),崩溃退出码 0xC0000005(STATUS_ACCESS_VIOLATION,返回地址被覆盖)。

依据负责任披露(Responsible Disclosure)原则,为降低被滥用的风险, 本报告不公开可实际利用的触发载荷(PoC 报文与利用脚本)。

本报告为内部安全研究自测结果,未向任何漏洞平台或维护方上报;如需复现与修复验证,请在授权环境中自行评估。