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-36355 — CVE-2026-36355: Realtek rtl819x Jungle SDK - Lectura/Escritura no autenticada de memoria del kernel a través de ioctls de depuración | Kitploit
Herramientas/GitHubGitHub/totekuh/cve-2026-36355
Seguridad de Sistemas EmbebidosEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónSeguridad InalámbricaSeguridad de HardwareExplotación de Binarios
GitHubtotekuh/cve-2026-36355

CVE-2026-36355

CVE-2026-36355: Realtek rtl819x Jungle SDK - Lectura/Escritura no autenticada de memoria del kernel a través de ioctls de depuración

Ver Repositorio
6hace 4 mesesAú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

CVE-2026-36355: Realtek rtl819x Jungle SDK - Lectura/Escritura no autenticada de memoria del kernel mediante ioctls de depuración

  • CVE: CVE-2026-36355
  • CWE: CWE-782, CWE-787, CWE-200
  • Descubridor: Daniil Gordeev
  • Divulgado: 2026-05-03

Resumen

El controlador de kernel Wi-Fi rtl8192cd del "Jungle SDK" fuera del árbol de Realtek rtl819x expone dos IOCTLs — write_mem (0x89F5) y read_mem (0x89F6) — sin comprobaciones de control de acceso. Cualquier usuario local que pueda abrir una interfaz de red inalámbrica respaldada por el controlador puede leer o escribir memoria virtual arbitraria del kernel, lo que conduce directamente a root.

Los manejadores están controlados por _IOCTL_DEBUG_CMD_ en 8192cd_cfg.h, que está definido incondicionalmente (sin #ifdef DEBUG), por lo que el conjunto de comandos de depuración se compila en todas las compilaciones de producción.

Un exploit de referencia (kpwn) consigue uid=0 desde un shell sin privilegios, con cero direcciones hardcodeadas — tanto el diseño de task_struct como la ubicación de init_task se detectan automáticamente en tiempo de ejecución, lo que lo hace portable entre versiones de kernel y compilaciones de OEM.

Productos afectados

La vulnerabilidad se encuentra en el controlador de kernel Wi-Fi Realtek rtl819x Jungle SDK, en todas las versiones conocidas hasta la v3.4.14B. No hay corrección en el momento de la divulgación. Los rtlwifi / rtw88 / rtw89 del kernel principal de Linux son bases de código diferentes y no están afectados.

El núcleo compartido del controlador se compila en múltiples variantes (rtl8192cd, rtl8192es, rtl8192ee, rtl8192fe, rtl8188ee, etc.). Cualquier compilación del Jungle SDK que incluya el controlador Wi-Fi está afectada.

Probablemente afectados: requieren verificación por producto

El Realtek Jungle SDK se redistribuye ampliamente bajo contratos OEM. Los proveedores documentados en la lista de proveedores de CVE-2021-35395 (que apuntaba a un componente diferente, de espacio de usuario, del mismo SDK) incluyen D-Link, TOTOLINK, Tenda, NEC, I-O DATA, Elecom, Buffalo, Humax, H3C e IP-COM. Si cada línea de producto específica incluye el controlador de kernel vulnerable requiere inspección de la publicación del código fuente GPL por producto; este aviso no lo afirma sin verificación independiente.

Entorno de prueba

DispositivoOrtel 4G LTE CPE (OEM: MeiG Smart FORGE_SLT711)
SoCQualcomm MDM9607, ARMv7 Cortex-A7
KernelLinux 3.18.48
Módulo

Confirmado: escritura de 0xDEADBEEF en .bss del módulo con lectura posterior y restauración; LPE completo de uid=1000 a uid=0 mediante recorrido de init_task y sobrescritura de credenciales, desde un shell sin privilegios.

Detalles técnicos

Causa raíz

En 8192cd_cfg.h:

root@kitploit:~
#define _IOCTL_DEBUG_CMD_

No está controlado por #ifdef DEBUG. El conjunto de comandos de depuración se incluye en todas las compilaciones de producción.

Manejadores vulnerables

El despachador rtl_ioctl() del controlador enruta 0x89F5 y 0x89F6 (en el rango estándar de IOCTL privados SIOCDEVPRIVATE+5/+6 utilizado por los controladores inalámbricos para extensiones de proveedor) a write_mem y read_mem. Los manejadores analizan una cadena proporcionada por el usuario:

  • Lectura: dw,<addr>,<count> — lee count palabras de 32 bits desde la dirección virtual del kernel addr
  • Escritura: dw,<addr>,<count>,<value> — escribe count palabras de 32 bits de value en addr

La dirección se analiza con _atoi(base 16), se pasa a memcpy() contra el espacio de direcciones virtuales del kernel, y el resultado se devuelve con copy_to_user(). No hay:

  • Comprobación de capable()
  • Comprobación de access_ok() en la dirección
  • Comprobación de límites en el rango de direcciones
  • Bloqueo: los 59 IOCTLs del conjunto de comandos de depuración comparten un único búfer global de 2000 bytes (tmpbuf1) en .bss

La primitiva de lectura está limitada a 128 bytes por llamada; la primitiva de escritura acepta longitud arbitraria.

La misma brecha de control de acceso se aplica a otros manejadores del conjunto de depuración (lectura/escritura de registros de hardware mediante 0x89F3/0x89F4/0x89F8–0x89FD, escrituras MIB mediante 0x89F1, lectura/escritura de eFuse, modo de prueba de fabricación). Son accesibles a través de la misma ruta de código y merecen una auditoría completa por parte de cualquiera que parchee este error.

Prueba de concepto

kpwn: de uid=1000 a uid=0 en un MeiG FORGE_SLT711 (Ortel 4G LTE CPE), kernel 3.18.48

Exploit de referencia kpwn.c (publicado junto con este aviso):

  • Se ejecuta como cualquier usuario sin privilegios, sin necesidad de root.
  • Detecta automáticamente los offsets de task_struct (comm, cred, tasks, pid) recorriendo init_task, que a su vez se localiza mediante un escaneo de fuerza bruta del .data del kernel.
  • Detecta automáticamente la interfaz vulnerable probando cada /sys/class/net/* para la primitiva de lectura.
  • 44 IOCTLs cuando /proc/kallsyms es legible, ~7600 IOCTLs cuando kptr_restrict=2 (ruta completa de escaneo de .data). Produce un shell root incondicionalmente en cada ejecución de prueba.
root@kitploit:~
# Build:
arm-linux-gnueabi-gcc -static -O2 -o kpwn kpwn.c

# Run as unprivileged user:
$ id
uid=1000(pwn) gid=3003(inet) ...
$ /tmp/kpwn
kpwn — RTL8192CD kernel LPE
[*] Scanning interfaces...
[+] wlan0 — read primitive confirmed
[*] Resolving init_task...
[+] init_task @ 0xc08ecb38
[+] comm=0x3a8 cred=0x3a4 tasks=0x250 pid=0x2c0
[+] cred=0xed3a4500 uid=1000 gid=3003
[*] Overwriting credentials...
[+] uid=0 euid=0 gid=0 egid=0
*** GOT ROOT *** uid=1000 -> 0 (44 ioctls)
# id
uid=0(root) gid=0(root) groups=0(root)
Descargar herramienta
rtl8192es.ko
Fecha2026-02-23