Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-32945 — PJSIP DNS Compression Pointer Heap OOB Read (Remote DoS) | Kitploit
Strumenti/GitHubGitHub/johanneslks/cve-2026-32945
Analisi Dinamica (Sandboxing)Analisi delle VulnerabilitàExploitFuzzingAnalisi di Binari
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS Compression Pointer Heap OOB Read (Remote DoS)

Vedi Repository
4 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-32945

Lettura OOB dell'heap del puntatore di compressione DNS in PJSIP (DoS remoto)

Descrizione

get_name_len() e get_name() in pjlib-util/src/pjlib-util/dns.c leggono un puntatore di compressione DNS a 2 byte tramite pj_memcpy(&offset, p, 2) senza verificare che entrambi i byte rientrino nel buffer del pacchetto. Quando un byte 0xC0 (marcatore di puntatore di compressione) è l'ultimo byte di una risposta DNS, la memcpy legge un byte oltre il limite di allocazione dell'heap.

Una singola risposta DNS craftata di 20 byte innesca la lettura OOB e causa il crash di qualsiasi applicazione PJSIP (inclusi Asterisk e FreeSWITCH) che risolve un dominio tramite un server DNS controllato dalla rete.

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

Questa è la terza CVE del parser DNS in dns.c di pjproject dal 2022 (dopo CVE-2022-24793 e CVE-2023-27585). La correzione di CVE-2022-24793 ha aggiunto controlli di lunghezza in tutto il parser ma ha mancato il percorso del puntatore di compressione.

Interessati: pjproject <= 2.16. Corretto in pjproject 2.17 (commit 5311aee).

Utilizzo

root@kitploit:~
# Harness ASan standalone (nessuna installazione di pjproject richiesta):
./run.sh

# Oppure compila ed esegui manualmente:
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# PoC di rete -- server DNS rogue:
python3 poc.py --port 5353
# Quindi punta un'applicazione PJSIP al server rogue:
#   pjsua --nameserver 127.0.0.1:5353 sip:[email protected]

# Docker (compila pjproject 2.16 dal sorgente con ASan):
docker compose build
docker compose run harness

Requisiti

  • Per l'harness standalone: gcc con supporto AddressSanitizer
  • Per il PoC di rete: Python 3 (solo libreria standard, nessuna dipendenza esterna)
  • Per Docker: Docker + Docker Compose

File

Riferimenti

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

Avviso legale

Questo progetto è rilasciato sotto GNU GPLv3.

È fornito per ricerca sulla sicurezza difensiva, istruzione e test autorizzati. Non utilizzare questo codice contro sistemi o servizi senza esplicita autorizzazione del proprietario.

L'uso non autorizzato può violare la legge applicabile. Gli autori non concedono il permesso di testare sistemi di terze parti e non sono responsabili per un uso improprio.

Vedere il file LICENSE per i termini di garanzia e responsabilità.

Scarica lo strumento
FileDescrizione
harness.cHarness ASan standalone -- reimplementa la vulnerabile get_name_len() con gli esatti tipi di pjproject
harness_pjlib.cHarness alternativo che chiama la reale pj_dns_parse_packet() (per Docker)
poc.pyServer DNS rogue -- risponde a qualsiasi query con il pacchetto craftato di 20 byte
run.shCompila ed esegue l'harness ASan
DockerfileCompila pjproject 2.16 dal sorgente con ASan
docker-compose.ymlConfigurazione Docker per l'harness pjlib
proof_output.txtOutput ASan completo dalla verifica dal vivo