
Proyecto defensivo de investigación de vulnerabilidades que compara el firmware Grandstream GXP1600 vulnerable y parcheado para CVE-2026-2329, utilizando extracción SquashFS, ingeniería inversa con Ghidra y rastreo de ELF ARM para documentar la remediación del proveedor sin weaponized ex.
Proyecto de análisis estático defensivo que compara el firmware Grandstream GXP1600 1.0.7.79 (vulnerable) y 1.0.7.81 (parcheado) para comprender cómo el fabricante remedió la falla de análisis de solicitudes asociada con CVE-2026-2329.
Este repositorio demuestra un flujo de trabajo de investigación de vulnerabilidades reproducible: preservar evidencia, extraer firmware integrado, localizar un servicio objetivo, rastrear una ruta de API expuesta, comparar implementaciones vulnerables y parcheadas, y documentar el impacto de seguridad sin desarrollar ni armar un exploit.
El análisis se centró en el binario de servicio web gs_web y en la ruta de solicitud .
/cgi-bin/api.values.getEn el firmware 1.0.7.79, el análisis estático identificó una rutina de análisis de token de solicitud que utiliza un búfer local fijo en la pila (char acStack_68[68]) y copia datos de token controlados por la solicitud sin una verificación aparente de límite superior antes de la escritura.
En el firmware 1.0.7.81, la lógica correspondiente maneja la solicitud de manera diferente: valida el puntero de la solicitud, calcula la longitud de la solicitud, asigna un búfer en el montón con un tamaño de strlen(request) + 1, copia la solicitud y tokeniza la copia del montón in situ. Esto elimina la copia de tamaño fijo en el búfer de pila de la ruta de análisis observada y es consistente con una remediación del manejo inseguro de la solicitud.
Para una vista rápida del hallazgo, amigable para reclutadores y analistas, consulte Comparación visual de parches. Contiene tres diagramas reconstruidos y saneados que cubren:
Las figuras están explícitamente etiquetadas como reconstrucciones a partir de notas de análisis de Ghidra registradas, no como capturas de pantalla de la interfaz de 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
Las muestras de gs_web analizadas se rastrearon mediante SHA-256:
| Firmware | Rol | SHA-256 |
|---|---|---|
| 1.0.7.79 | Vulnerable | 29dd365affbc9aaa3a1f8833edda8a41a03813692004f890830fc5bbdf324dab |
| 1.0.7.81 | Parcheado | 0cac4c54426db16d9f738a0c0b4715c600754f0f17430a6330ab8421310a8942 |
Las imágenes de firmware del fabricante y los binarios extraídos no están incluidos en este repositorio.
gs_web.api.values.get y las referencias cruzadas para localizar la lógica relacionada con el manejo de solicitudes.Consulte docs/methodology.md para obtener detalles adicionales.
Este repositorio está destinado a investigación de seguridad defensiva autorizada, análisis de vulnerabilidades, educación y documentación técnica reproducible. No contiene código de exploit, cargas útiles armadas, firmware del fabricante, credenciales ni instrucciones para acceso no autorizado.
El proyecto es un análisis estático de comparación de parches. La explotación dinámica, las pruebas en dispositivos reales y la validación de explotabilidad quedaron fuera del alcance completado. Consulte docs/limitations.md.
Vivian Onyinye Uba
Ciberseguridad | Detección de amenazas | Investigación de vulnerabilidades | Seguridad OT/ICS