
Оборонительный проект по исследованию уязвимостей, сравнивающий уязвимую и пропатченную прошивки Grandstream GXP1600 для CVE-2026-2329, использующий извлечение SquashFS, обратную разработку в Ghidra и трассировку ARM ELF для документирования исправлений вендора без боевых ex
Проект защитного статического анализа, сравнивающий прошивки Grandstream GXP1600 1.0.7.79 (уязвимая) и 1.0.7.81 (исправленная) для понимания того, как вендор устранил ошибку разбора запросов, связанную с CVE-2026-2329.
Этот репозиторий демонстрирует воспроизводимый процесс исследования уязвимостей: сохранение доказательств, извлечение встроенной прошивки, поиск целевого сервиса, трассировку открытого API-пути, сравнение уязвимой и исправленной реализаций и документирование влияния на безопасность без разработки или применения эксплойта.
Анализ был сосредоточен на бинарном файле веб-сервиса gs_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