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
Ferramentas/GitHubGitHub/johanneslks/cve-2026-32945
Análise Dinâmica (Sandboxing)Análise de VulnerabilidadesExploraçãoFuzzingAnálise de Binários
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS Compression Pointer Heap OOB Read (Remote DoS)

Ver Repositório
há 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-32945

Leitura Fora dos Limites do Heap do Ponteiro de Compressão DNS do PJSIP (DoS Remoto)

Descrição

get_name_len() e get_name() em pjlib-util/src/pjlib-util/dns.c leem um ponteiro de compressão DNS de 2 bytes via pj_memcpy(&offset, p, 2) sem verificar que ambos os bytes estão dentro do buffer do pacote. Quando um byte 0xC0 (marcador de ponteiro de compressão) é o último byte de uma resposta DNS, o memcpy lê um byte além do limite da alocação do heap.

Uma única resposta DNS maliciosa de 20 bytes aciona a leitura fora dos limites e derruba qualquer aplicação PJSIP (incluindo Asterisk e FreeSWITCH) que resolva um domínio por meio de um servidor DNS controlado pela rede.

O ASan confirma: heap-buffer-overflow READ of size 2, 0 bytes after 20-byte region em get_name_len().

Esta é a terceira CVE do parser DNS no dns.c do pjproject desde 2022 (após CVE-2022-24793 e CVE-2023-27585). A correção da CVE-2022-24793 adicionou verificações de comprimento em todo o parser, mas não cobriu o caminho do ponteiro de compressão.

Afetados: pjproject <= 2.16. Corrigido no pjproject 2.17 (commit 5311aee).

Uso

root@kitploit:~
# Harness ASan autônomo (sem necessidade de instalação do pjproject):
./run.sh

# Ou compile e execute manualmente:
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# PoC de rede -- servidor DNS malicioso:
python3 poc.py --port 5353
# Em seguida, aponte uma aplicação PJSIP para o servidor malicioso:
#   pjsua --nameserver 127.0.0.1:5353 sip:[email protected]

# Docker (compila o pjproject 2.16 a partir do código-fonte com ASan):
docker compose build
docker compose run harness

Requisitos

  • Para o harness autônomo: gcc com suporte a AddressSanitizer
  • Para o PoC de rede: Python 3 (apenas stdlib, sem dependências externas)
  • Para Docker: Docker + Docker Compose

Arquivos

ArquivoDescrição
harness.cHarness ASan autônomo -- reimplementa a vulnerável get_name_len() com os tipos exatos do pjproject
harness_pjlib.cHarness alternativo que chama a função real pj_dns_parse_packet() (para Docker)
poc.pyServidor DNS malicioso -- responde a qualquer consulta com o pacote malicioso de 20 bytes
run.shCompila e executa o harness ASan
DockerfileCompila o pjproject 2.16 a partir do código-fonte com ASan
docker-compose.ymlConfiguração Docker para o harness pjlib
proof_output.txtSaída ASan completa da verificação ao vivo

Referências

  • https://github.com/pjsip/pjproject/security/advisories/GHSA-jr2p-p2w4-rr9q
  • https://github.com/pjsip/pjproject/commit/5311aee398ae9d623829a6bad7b679a193c9e199

Aviso Legal

Este projeto é distribuído sob a GNU GPLv3.

Ele é fornecido para pesquisa de segurança defensiva, educação e testes autorizados. Não use este código contra sistemas ou serviços sem permissão explícita do proprietário.

O uso não autorizado pode violar a legislação aplicável. Os autores não concedem permissão para testar sistemas de terceiros e não são responsáveis pelo uso indevido.

Consulte o arquivo LICENSE para os termos de garantia e responsabilidade.

Baixar ferramenta