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-38427 — CVE-2026-38427 — Estouro de inteiro (Integer Wraparound) → Estouro de buffer no heap em Tasmota fetch_jpg() uint16_t (Tasmota <= 15.3.0.3) | Kitploit
Ferramentas/GitHubGitHub/sermikr0/cve-2026-38427
Segurança de Sistemas EmbarcadosSegurança IoTAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoSegurança de Hardware e IoTExploração de Binários
GitHubsermikr0/cve-2026-38427

CVE-2026-38427

CVE-2026-38427 — Estouro de inteiro (Integer Wraparound) → Estouro de buffer no heap em Tasmota fetch_jpg() uint16_t (Tasmota <= 15.3.0.3)

Ver Repositório
3há 3 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-38427: Estouro de Inteiro (Wraparound) → Estouro de Buffer no Heap em fetch_jpg() do Tasmota

CVE: CVE-2026-38427
Severidade: Crítica (CVSS 9.8)
Produto: Arendst Tasmota
Versão Afetada: <= 15.3.0.3
Arquivo: tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
Função: fetch_jpg() — case 2 (captura de quadro MJPEG)
Autor: Saidakbarxon Maxsudxonov
Divulgação: Responsável — relatado ao Tasmota antes da publicação


Resumo

Uma vulnerabilidade de estouro de inteiro (wraparound) em uint16_t existe na função fetch_jpg() do driver scripter do Tasmota. Quando um dispositivo Tasmota captura quadros MJPEG de um servidor controlado pelo atacante, o valor do cabeçalho Content-Length é lido em uma variável uint16_t através de atoi(). Valores maiores que 65535 sofrem wraparound silencioso (ex.: 65537 → 1), causando a alocação de um buffer no heap drasticamente menor. O dispositivo então lê apenas a quantidade de bytes com wraparound do fluxo, deixando o restante no buffer do fluxo, causando corrupção do estado do heap/fluxo que leva a uma falha (DoS) ou possível execução remota de código.


Código Vulnerável

root@kitploit:~
// tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino

// Case 2: capturar próximo quadro MJPEG
char inbuff[64];
stream.readBytesUntil('\n', inbuff, sizeof(inbuff));  // lê "Content-Length: 70000"
char *cp = strchr(inbuff, ':');
uint16_t size = 0;
if (cp) {
    size = atoi(cp + 1);   // atoi() retorna int 70000
                            // TRUNCAMENTO IMPLÍCITO: uint16_t = 70000 & 0xFFFF = 4464
}
uint8_t *buff = (uint8_t *)special_malloc(size);   // malloc(4464) — muito pequeno!
if (buff) {
    stream.readBytes(buff, size);                  // lê apenas 4464 bytes
                                                   // 65536 bytes restam no fluxo → corrupção
}

Tabela de Estouro de Inteiro (Wraparound)


Cenário de Ataque

Um atacante que consiga fazer um dispositivo Tasmota conectar-se ao seu servidor HTTP (através de um script Tasmota malicioso ou MITM) pode enviar quadros MJPEG com valores de Content-Length superiores a 65535. O dispositivo irá:

  1. Alocar um buffer pequeno (valor com wraparound)
  2. Ler apenas uma fração dos dados
  3. Deixar bytes restantes corrompendo o estado do fluxo HTTP/WiFi
  4. Falhar (crash) ou apresentar comportamento indefinido levando a potencial RCE

Disparo via script Tasmota:

root@kitploit:~
>D
>B
fetchjp(IP_DO_ATACANTE:PORTA/stream,0,0,1)
>1
=fetchjp(2,0,0,1)

Prova de Conceito

O PoC executa um servidor HTTP MJPEG falso que envia quadros com valores maliciosos de Content-Length:

root@kitploit:~
python3 CVE-2026-38427_poc.py --port 8889 --cl 65537
python3 CVE-2026-38427_poc.py --port 8889 --cl 131072

Veja CVE-2026-38427_poc.py para implementação completa.


Impacto

  • Confidencialidade: Alta (RCE possível em ESP32)
  • Integridade: Alta
  • Disponibilidade: Alta (falha/reinicialização garantida)
  • Vetor de Ataque: Rede
  • Autenticação: Nenhuma necessária (dispositivo deve ser programado para conectar ao servidor do atacante)

Linha do Tempo

  • 2026-03-29: Vulnerabilidade descoberta e relatada ao MITRE
  • 2026-03-29: CVE-2026-38427 atribuído
  • 2026-05-xx: Patch liberado pelo Tasmota (v15.3.0.4+)

Referências

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38427
Baixar ferramenta
Content-Length (cabeçalho)valor uint16_tBuffer alocadoBytes não lidos
6553600 (ignorado)65536
6553711 byte65536
7000044644464 bytes65536
13107200 (ignorado)131072