
Progetto di ricerca difensiva sulle vulnerabilità che confronta il firmware Grandstream GXP1600 vulnerabile e patchato per la CVE-2026-2329, utilizzando l'estrazione SquashFS, il reverse engineering con Ghidra e il tracing di ELF ARM per documentare la remediation del fornitore senza ex weaponizzato.
Progetto di analisi statica difensiva che confronta il firmware Grandstream GXP1600 1.0.7.79 (vulnerabile) e 1.0.7.81 (corretto) per comprendere come il fornitore ha rimediato al difetto di parsing delle richieste associato a CVE-2026-2329.
Questo repository dimostra un flusso di lavoro riproducibile per la ricerca di vulnerabilità: preservare le prove, estrarre il firmware incorporato, individuare un servizio target, tracciare un percorso API esposto, confrontare le implementazioni vulnerabile e corretta e documentare l'impatto sulla sicurezza senza sviluppare o armare un exploit.
L'analisi si è concentrata sul binario del servizio web gs_web e sul percorso di richiesta .
/cgi-bin/api.values.getNel firmware 1.0.7.79, l'analisi statica ha identificato una routine di parsing dei token di richiesta che utilizza un buffer di stack locale fisso (char acStack_68[68]) e copia dati token controllati dalla richiesta senza un apparente controllo del limite superiore prima della scrittura.
Nel firmware 1.0.7.81, la logica corrispondente gestisce la richiesta in modo diverso: valida il puntatore alla richiesta, calcola la lunghezza della richiesta, alloca un buffer heap dimensionato a strlen(request) + 1, copia la richiesta e tokenizza la copia heap in posizione. Questo rimuove la copia a dimensione fissa nel buffer di stack dal percorso di parsing osservato ed è coerente con una correzione della gestione non sicura delle richieste.
Per una visione rapida e accessibile del risultato, pensata per selezionatori e analisti, vedere Confronto visivo delle patch. Contiene tre diagrammi ricostruiti e ripuliti che coprono:
Le figure sono esplicitamente etichettate come ricostruzioni basate sugli appunti registrati dell'analisi Ghidra, non come screenshot dell'interfaccia 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
I campioni gs_web analizzati sono stati tracciati tramite SHA-256:
| Firmware | Ruolo | SHA-256 |
|---|---|---|
| 1.0.7.79 | Vulnerabile | 29dd365affbc9aaa3a1f8833edda8a41a03813692004f890830fc5bbdf324dab |
| 1.0.7.81 | Corretto | 0cac4c54426db16d9f738a0c0b4715c600754f0f17430a6330ab8421310a8942 |
Le immagini firmware del fornitore e i binari estratti non sono inclusi in questo repository.
gs_web.api.values.get e i riferimenti incrociati per individuare la logica di gestione delle richieste correlata.Vedere docs/methodology.md per maggiori dettagli.
Questo repository è destinato a ricerca difensiva autorizzata sulla sicurezza, analisi delle vulnerabilità, formazione e documentazione tecnica riproducibile. Non contiene codice exploit, payload armati, firmware del fornitore, credenziali o istruzioni per accessi non autorizzati.
Il progetto è un'analisi statica di confronto delle patch. Lo sfruttamento dinamico, i test su dispositivi reali e la validazione della sfruttabilità erano al di fuori dell'ambito completato. Vedere docs/limitations.md.
Vivian Onyinye Uba
Cybersicurezza | Rilevamento delle minacce | Ricerca di vulnerabilità | Sicurezza OT/ICS