Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-36355 — CVE-2026-36355: Realtek rtl819x Jungle SDK - Leitura/Gravação de Memória do Kernel Não Autenticada via ioctls de Depuração | Kitploit
Ferramentas/GitHubGitHub/totekuh/cve-2026-36355
Segurança de Sistemas EmbarcadosEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoSegurança Sem FioSegurança de HardwareExploração de Binários
GitHubtotekuh/cve-2026-36355

CVE-2026-36355

CVE-2026-36355: Realtek rtl819x Jungle SDK - Leitura/Gravação de Memória do Kernel Não Autenticada via ioctls de Depuração

Ver Repositório
6há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-36355: Realtek rtl819x Jungle SDK - Leitura/Escrita Não Autenticada de Memória do Kernel via ioctls de Debug

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

Resumo

O driver de kernel Wi-Fi rtl8192cd no "Jungle SDK" fora da árvore do Realtek rtl819x expõe dois IOCTLs — write_mem (0x89F5) e read_mem (0x89F6) — sem verificações de controle de acesso. Qualquer usuário local capaz de abrir uma interface de rede sem fio baseada no driver pode ler ou escrever memória virtual arbitrária do kernel, levando diretamente ao root.

Os manipuladores são condicionados por _IOCTL_DEBUG_CMD_ em 8192cd_cfg.h, que é definido incondicionalmente (sem #ifdef DEBUG), então o conjunto de comandos de depuração é compilado em todas as versões de produção.

Um exploit de referência (kpwn) alcança uid=0 a partir de um shell sem privilégios, com zero endereços codificados — o layout de task_struct e a localização de init_task são ambos detectados automaticamente em tempo de execução, tornando-o portátil entre versões de kernel e compilações OEM.

Produtos Afetados

A vulnerabilidade reside no driver de kernel Wi-Fi Realtek rtl819x Jungle SDK, em todas as versões conhecidas até v3.4.14B. Nenhuma correção no momento da divulgação. Os drivers principais do Linux rtlwifi / rtw88 / rtw89 são bases de código diferentes e não são afetados.

O núcleo compartilhado do driver é compilado em múltiplas variantes (rtl8192cd, rtl8192es, rtl8192ee, rtl8192fe, rtl8188ee, etc.). Qualquer compilação do Jungle SDK que inclua o driver Wi-Fi é afetada.

Provavelmente afetados — requerem verificação por produto

O Realtek Jungle SDK é amplamente redistribuído sob contratos OEM. Os fornecedores documentados na lista de fornecedores do CVE-2021-35395 (que visava um componente diferente, em espaço de usuário, do mesmo SDK) incluem D-Link, TOTOLINK, Tenda, NEC, I-O DATA, Elecom, Buffalo, Humax, H3C e IP-COM. Se cada linha de produto específica inclui o driver de kernel vulnerável requer inspeção da liberação de código-fonte GPL por produto; este aviso não afirma isso sem verificação independente.

Ambiente de Teste

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

Confirmado: escrita de 0xDEADBEEF no .bss do módulo com leitura de volta e restauração; LPE completo de uid=1000 para uid=0 através de caminhada em init_task e sobrescrita de credenciais, a partir de um shell sem privilégios.

Detalhes Técnicos

Causa raiz

Em 8192cd_cfg.h:

root@kitploit:~
#define _IOCTL_DEBUG_CMD_

Não condicionado por #ifdef DEBUG. O conjunto de comandos de depuração é enviado em todas as versões de produção.

Manipuladores vulneráveis

O despachante rtl_ioctl() do driver roteia 0x89F5 e 0x89F6 (no intervalo padrão de IOCTL privado SIOCDEVPRIVATE+5/+6 usado por drivers sem fio para extensões de fornecedor) para write_mem e read_mem. Os manipuladores analisam uma string fornecida pelo usuário:

  • Leitura: dw,<addr>,<count> — lê count palavras de 32 bits do endereço virtual do kernel addr
  • Escrita: dw,<addr>,<count>,<value> — escreve count palavras de 32 bits de value em addr

O endereço é analisado com _atoi(base 16), passado para memcpy() contra o espaço de endereço virtual do kernel, e o resultado é copiado de volta via copy_to_user(). Existe:

  • Nenhuma verificação capable()
  • Nenhuma verificação access_ok() no endereço
  • Nenhuma verificação de limites no intervalo de endereços
  • Nenhum bloqueio — todos os 59 IOCTLs no conjunto de comandos de depuração compartilham um único buffer global de 2000 bytes (tmpbuf1) no .bss

A primitiva de leitura é limitada a 128 bytes por chamada; a primitiva de escrita aceita comprimento arbitrário.

A mesma lacuna de controle de acesso se aplica a outros manipuladores no conjunto de depuração (leitura/escrita de registros de hardware via 0x89F3/0x89F4/0x89F8–0x89FD, escritas MIB via 0x89F1, leitura/escrita de eFuse, modo de teste de fabricação). Eles são acessíveis pelo mesmo caminho de código e merecem uma auditoria completa por qualquer pessoa que corrija este bug.

Prova de Conceito

kpwn - uid=1000 to uid=0 on a MeiG FORGE_SLT711 (Ortel 4G LTE CPE), kernel 3.18.48

Exploit de referência kpwn.c (publicado junto com este aviso):

  • Executa como qualquer usuário sem privilégios, sem necessidade de root.
  • Detecta automaticamente os offsets de task_struct (comm, cred, tasks, pid) percorrendo init_task, que é localizado por varredura de força bruta do .data do kernel.
  • Detecta automaticamente a interface vulnerável sondando cada /sys/class/net/* pela primitiva de leitura.
  • 44 IOCTLs quando /proc/kallsyms é legível, ~7600 IOCTLs quando kptr_restrict=2 (caminho de varredura completa do .data). Produz um shell root incondicionalmente em cada execução de teste.
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)
Baixar ferramenta
rtl8192es.ko
Data2026-02-23