Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/johanneslks/cve-2026-32945
Динамический анализ (песочница)Анализ уязвимостейЭксплуатацияФаззингАнализ Бинарных Файлов
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS Compression Pointer Heap OOB Read (удалённый DoS)

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-32945

Внеграничное чтение кучи по указателю сжатия DNS в PJSIP (удалённый DoS)

Описание

Функции get_name_len() и get_name() в pjlib-util/src/pjlib-util/dns.c считывают 2-байтовый указатель сжатия DNS через pj_memcpy(&offset, p, 2) без проверки того, что оба байта находятся в пределах буфера пакета. Когда байт 0xC0 (маркер указателя сжатия) является самым последним байтом DNS-ответа, memcpy считывает один байт за границей выделенной области кучи.

Один сформированный 20-байтовый DNS-ответ вызывает внеграничное чтение и приводит к сбою любого приложения PJSIP (включая Asterisk и FreeSWITCH), которое разрешает домен через контролируемый сетью DNS-сервер.

ASan подтверждает: heap-buffer-overflow READ of size 2, 0 bytes after 20-byte region в get_name_len().

Это третья CVE, связанная с DNS-парсером в dns.c проекта pjproject с 2022 года (после CVE-2022-24793 и CVE-2023-27585). Исправление CVE-2022-24793 добавило проверки длины по всему парсеру, но пропустило путь указателя сжатия.

Затронуты: pjproject <= 2.16. Исправлено в pjproject 2.17 (коммит 5311aee).

Использование

root@kitploit:~
# Автономный ASan-харнесс (установка pjproject не требуется):
./run.sh

# Или сборка и запуск вручную:
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# Сетевой PoC — мошеннический DNS-сервер:
python3 poc.py --port 5353
# Затем укажите приложению PJSIP на мошеннический сервер:
#   pjsua --nameserver 127.0.0.1:5353 sip:[email protected]

# Docker (собирает pjproject 2.16 из исходников с ASan):
docker compose build
docker compose run harness

Требования

  • Для автономного харнесса: gcc с поддержкой AddressSanitizer
  • Для сетевого PoC: Python 3 (только стандартная библиотека, без внешних зависимостей)
  • Для Docker: Docker + Docker Compose

Файлы

ФайлОписание
harness.cАвтономный ASan-харнесс — повторяет уязвимую get_name_len() с точными типами pjproject
harness_pjlib.cАльтернативный харнесс, вызывающий реальную pj_dns_parse_packet() (для Docker)
poc.pyМошеннический DNS-сервер — отвечает на любой запрос сформированным 20-байтовым пакетом
run.shСобирает и запускает ASan-харнесс
DockerfileСобирает pjproject 2.16 из исходников с ASan
docker-compose.ymlНастройка Docker для pjlib-харнесса
proof_output.txtПолный вывод ASan из живой проверки

Ссылки

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

Правовое уведомление

Этот проект выпущен под лицензией GNU GPLv3.

Он предоставляется для оборонительных исследований безопасности, обучения и авторизованного тестирования. Не используйте этот код против систем или сервисов без явного разрешения владельца.

Несанкционированное использование может нарушать действующее законодательство. Авторы не дают разрешения на тестирование сторонних систем и не несут ответственности за неправомерное использование.

Условия гарантии и ответственности см. в файле LICENSE.

Скачать инструмент