Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-32945 — PJSIP DNS ضغط المؤشر قراءة خارج الحدود في الكومة (تعطيل الخدمة عن بُعد) | Kitploit
أدوات/GitHubGitHub/johanneslks/cve-2026-32945
التحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيتحليل الملفات الثنائية
GitHubjohanneslks/cve-2026-32945

CVE-2026-32945

PJSIP DNS ضغط المؤشر قراءة خارج الحدود في الكومة (تعطيل الخدمة عن بُعد)

عرض المستودع
20منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-32945

قراءة خارج الحدود لمؤشر ضغط DNS في الكومة (تعطيل الخدمة عن بُعد)

الوصف

تقرأ الدالتان get_name_len() و get_name() في pjlib-util/src/pjlib-util/dns.c مؤشر ضغط DNS بحجم 2 بايت عبر pj_memcpy(&offset, p, 2) دون التحقق من أن البايتين يقعان داخل حدود مخزن الحزمة. عندما تكون بايتة 0xC0 (علامة مؤشر الضغط) هي آخر بايتة في استجابة DNS، تقرأ memcpy بايتة واحدة بعد حدود تخصيص الكومة.

حزمة DNS واحدة مصمّمة بحجم 20 بايت تؤدي إلى القراءة خارج الحدود وتُعطّل أي تطبيق 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).

الاستخدام

# أداة ASan المستقلة (لا تتطلب تثبيت pjproject):
./run.sh

# أو البناء والتشغيل يدويًا:
gcc -fsanitize=address,undefined -g -O0 harness.c -o harness
./harness

# إثبات المفهوم عبر الشبكة -- خادم 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
  • لإثبات المفهوم عبر الشبكة: 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 لشروط الضمان والمسؤولية.

تنزيل الأداة