防御性漏洞研究项目,针对 CVE-2026-2329,比较存在漏洞和已修补的 Grandstream GXP1600 固件,使用 SquashFS 提取、Ghidra 逆向工程和 ARM ELF 跟踪来记录供应商的修复措施,而非武器化的 ex
防御性静态分析项目,对比 Grandstream GXP1600 固件 1.0.7.79(易受攻击版本)与 1.0.7.81(已修补版本),以了解厂商如何修复与 CVE-2026-2329 相关的请求解析缺陷。
本仓库展示了一个可复现的漏洞研究流程:保存证据、提取嵌入式固件、定位目标服务、追踪暴露的 API 路径、对比易受攻击版本与已修补版本的实现,并在不开发或武器化利用代码的前提下记录安全影响。
本次分析聚焦于 gs_web Web 服务二进制文件及 /cgi-bin/api.values.get 请求路径。
在固件 1.0.7.79 中,静态分析识别出一个请求令牌解析例程,该例程使用固定的本地栈缓冲区(char acStack_68[68]),在写入之前将请求控制的令牌数据复制到其中,且未发现明显的上界检查。
在固件 1.0.7.81 中,相应的逻辑以不同方式处理请求:它校验请求指针、计算请求长度、分配大小为 strlen(request) + 1 的堆缓冲区、复制请求,并就地对该堆副本进行令牌化。这消除了已观察到的解析路径中的固定大小栈缓冲区复制,与对不安全请求处理的修复方案一致。
如需快速查看便于招聘人员和分析师理解的结果,请参阅 可视化补丁对比。其中包含三张经过脱敏处理的重建示意图,涵盖:
这些图片明确标注为根据记录的 Ghidra 分析笔记重建,而非 Ghidra 界面的截图。
grandstream-cve-2026-2329-analysis/
├── README.md
├── LICENSE
├── .gitignore
├── docs/
│ ├── methodology.md
│ ├── findings.md
│ ├── visual-analysis.md
│ └── limitations.md
├── scripts/
│ ├── firmware_header_parser.py
│ └── extraction_reference.sh
├── hashes/
│ └── analyzed-files.sha256
└── screenshots/
└── README.md
已分析的 gs_web 样本通过 SHA-256 进行追踪:
| 固件 | 角色 | SHA-256 |
|---|---|---|
| 1.0.7.79 | 易受攻击版本 | 29dd365affbc9aaa3a1f8833edda8a41a03813692004f890830fc5bbdf324dab |
| 1.0.7.81 | 已修补版本 | 0cac4c54426db16d9f738a0c0b4715c600754f0f17430a6330ab8421310a8942 |
厂商固件镜像及提取出的二进制文件不包含在本仓库中。
gs_web 二进制文件。api.values.get 字符串及交叉引用定位相关的请求处理逻辑。更多细节请参阅 docs/methodology.md。
本仓库旨在用于经授权的防御性安全研究、漏洞分析、教育以及可复现的技术文档编制。其中不包含利用代码、武器化载荷、厂商固件、凭据或任何未授权访问的说明。
本项目为静态补丁对比分析。动态利用、实机设备测试及可利用性验证不在已完成范围内。请参阅 docs/limitations.md。
Vivian Onyinye Uba
网络安全 | 威胁检测 | 漏洞研究 | OT/ICS 安全