Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-32945 — PJSIP DNS Compression Pointer Heap OOB Read (DoS à distance) | Kitploit
Outils/GitHubGitHub/johanneslks/cve-2026-32945
Analyse Dynamique (Sandboxing)Analyse des VulnérabilitésExploitationFuzzingAnalyse de Binaires
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS Compression Pointer Heap OOB Read (DoS à distance)

Voir le dépôt
il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-32945

Lecture hors limites du tas du pointeur de compression DNS PJSIP (DoS à distance)

Description

get_name_len() et get_name() dans pjlib-util/src/pjlib-util/dns.c lisent un pointeur de compression DNS de 2 octets via pj_memcpy(&offset, p, 2) sans vérifier que les deux octets se trouvent dans le tampon du paquet. Lorsqu'un octet 0xC0 (marqueur de pointeur de compression) est le tout dernier octet d'une réponse DNS, le memcpy lit un octet au-delà de la limite d'allocation du tas.

Une seule réponse DNS malveillante de 20 octets déclenche la lecture hors limites et fait planter toute application PJSIP (y compris Asterisk et FreeSWITCH) qui résout un domaine via un serveur DNS contrôlé par le réseau.

ASan confirme : heap-buffer-overflow READ of size 2, 0 bytes after 20-byte region dans .

get_name_len()

Il s'agit de la troisième CVE du parseur DNS dans le fichier dns.c de pjproject depuis 2022 (après CVE-2022-24793 et CVE-2023-27585). Le correctif de CVE-2022-24793 a ajouté des vérifications de longueur dans tout le parseur mais a manqué le chemin du pointeur de compression.

Affecté : pjproject <= 2.16. Corrigé dans pjproject 2.17 (commit 5311aee).

Utilisation

root@kitploit:~
# Harnais ASan autonome (aucune installation de pjproject requise) :
./run.sh

# Ou compilation et exécution manuelles :
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# PoC réseau -- serveur DNS malveillant :
python3 poc.py --port 5353
# Puis pointez une application PJSIP vers le serveur malveillant :
#   pjsua --nameserver 127.0.0.1:5353 sip:[email protected]

# Docker (compile pjproject 2.16 depuis les sources avec ASan) :
docker compose build
docker compose run harness

Prérequis

  • Pour le harnais autonome : gcc avec prise en charge d'AddressSanitizer
  • Pour le PoC réseau : Python 3 (bibliothèque standard uniquement, aucune dépendance externe)
  • Pour Docker : Docker + Docker Compose

Fichiers

FichierDescription
harness.cHarnais ASan autonome -- réimplémente la fonction vulnérable get_name_len() avec les types exacts de pjproject
harness_pjlib.cHarnais alternatif appelant la vraie fonction pj_dns_parse_packet() (pour Docker)
poc.pyServeur DNS malveillant -- répond à toute requête avec le paquet malveillant de 20 octets
run.shCompile et exécute le harnais ASan
DockerfileCompile pjproject 2.16 depuis les sources avec ASan
docker-compose.ymlConfiguration Docker pour le harnais pjlib
proof_output.txtSortie ASan complète issue de la vérification en conditions réelles

Références

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

Avis légal

Ce projet est publié sous licence GNU GPLv3.

Il est fourni à des fins de recherche défensive en sécurité, d'éducation et de tests autorisés. N'utilisez pas ce code contre des systèmes ou des services sans autorisation explicite du propriétaire.

Toute utilisation non autorisée peut enfreindre la loi applicable. Les auteurs n'accordent pas la permission de tester des systèmes tiers et ne sont pas responsables d'une mauvaise utilisation.

Consultez le fichier LICENSE pour les conditions de garantie et de responsabilité.

Télécharger l’outil