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-32945 — PJSIP DNS Compression Pointer Heap OOB Read (DoS remoto) | Kitploit
Herramientas/GitHubGitHub/johanneslks/cve-2026-32945
Análisis Dinámico (Sandboxing)Análisis de VulnerabilidadesExplotaciónFuzzingAnálisis de Binarios
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS Compression Pointer Heap OOB Read (DoS remoto)

Ver Repositorio
hace 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-32945

Lectura fuera de límites del puntero de compresión DNS en el heap de PJSIP (DoS remoto)

Descripción

get_name_len() y get_name() en pjlib-util/src/pjlib-util/dns.c leen un puntero de compresión DNS de 2 bytes mediante pj_memcpy(&offset, p, 2) sin comprobar que ambos bytes se encuentren dentro del búfer del paquete. Cuando un byte 0xC0 (marcador de puntero de compresión) es el último byte de una respuesta DNS, el memcpy lee un byte más allá del límite de asignación del heap.

Una única respuesta DNS manipulada de 20 bytes provoca la lectura fuera de límites y bloquea cualquier aplicación PJSIP (incluidos Asterisk y FreeSWITCH) que resuelva un dominio a través de un servidor DNS controlado por la red.

ASan lo confirma: heap-buffer-overflow READ of size 2, 0 bytes after 20-byte region en .

get_name_len()

Este es el tercer CVE del analizador DNS en dns.c de pjproject desde 2022 (después de CVE-2022-24793 y CVE-2023-27585). La corrección de CVE-2022-24793 añadió comprobaciones de longitud en todo el analizador, pero omitió la ruta del puntero de compresión.

Afectados: pjproject <= 2.16. Corregido en pjproject 2.17 (commit 5311aee).

Uso

root@kitploit:~
# Harness ASan independiente (no requiere instalación de pjproject):
./run.sh

# O compilar y ejecutar manualmente:
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# PoC de red -- servidor DNS malicioso:
python3 poc.py --port 5353
# Luego apunte una aplicación PJSIP al servidor malicioso:
#   pjsua --nameserver 127.0.0.1:5353 sip:[email protected]

# Docker (compila pjproject 2.16 desde el código fuente con ASan):
docker compose build
docker compose run harness

Requisitos

  • Para el harness independiente: gcc con soporte de AddressSanitizer
  • Para el PoC de red: Python 3 (solo biblioteca estándar, sin dependencias externas)
  • Para Docker: Docker + Docker Compose

Archivos

ArchivoDescripción
harness.cHarness ASan independiente -- reimplementa la vulnerable get_name_len() con los tipos exactos de pjproject
harness_pjlib.cHarness alternativo que llama a la real pj_dns_parse_packet() (para Docker)
poc.pyServidor DNS malicioso -- responde a cualquier consulta con el paquete manipulado de 20 bytes
run.shCompila y ejecuta el harness ASan
DockerfileCompila pjproject 2.16 desde el código fuente con ASan
docker-compose.ymlConfiguración de Docker para el harness pjlib
proof_output.txtSalida ASan completa de la verificación en vivo

Referencias

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

Aviso legal

Este proyecto se publica bajo la GNU GPLv3.

Se proporciona para investigación de seguridad defensiva, educación y pruebas autorizadas. No utilice este código contra sistemas o servicios sin permiso explícito del propietario.

El uso no autorizado puede violar la legislación aplicable. Los autores no otorgan permiso para probar sistemas de terceros y no son responsables del mal uso.

Consulte el archivo LICENSE para conocer los términos de garantía y responsabilidad.

Descargar herramienta