
أداة بحث أمني لإثبات المفهوم لـ CVE-2026-49975: قنبلة ضغط HPACK في HTTP/2 + هجوم حجب التحكم في التدفق (DoS) في Apache mod_http2
إثبات مفهوم بحث أمني بواسطة naheeju
⚠️ هذه أداة عمل حقيقية لاستنزاف الذاكرة (DoS) — وليست لعبة. تفتح تدفقات تُجبر الهدف على تخصيص ذاكرة وتبقيها مفتوحة عبر حيل التحكم في التدفق في HTTP/2. طالما أن العملية قيد التشغيل، فإنها تستمر في التعليق وتعيد الاتصال تلقائيًا إذا أسقط الخادم الاتصال — ولا تتوقف من تلقاء نفسها. يتناسب التأثير طرديًا مع
--threadsو--streamsو--headers. إيقاف العملية (Ctrl+C) يحرر التدفقات المعلقة ويسمح للخادم بالتعافي، لكن لا شيء في التشغيل الافتراضي "لطيف" — تعامل مع كل تشغيل كاختبار حي.
CVE-2026-49975 ("قنبلة HTTP/2") هي ثغرة حجب خدمة (Denial-of-Service) عن بُعد وبدون مصادقة تؤثر على وحدة mod_http2 في خادم Apache HTTP. وهي تسلسل نقطتي ضعف معروفتين منذ زمن طويل في HTTP/2:
Cookie دون احتسابها ضمن LimitRequestFields، مما يُجبر الخادم على تخصيص الذاكرة بشكل متكرر لهياكل المحاسبة الداخلية للترويسات.النتيجة: يمكن لعميل واحد على اتصال متواضع أن يُجبر الهدف على تخصيص ذاكرة كبير ومستمر طالما بقي التدفق مفتوحًا. يدعم هذا التنفيذ وضعين للحمولة ويتوسع خطيًا مع التزامن الذي تُهيّئه:
nginx — يزرع ترويسة x-bomb فارغة في الجدول الديناميكي لـ HPACK ويعيد الإشارة إليها بشكل متكرر (تضخيم بنسبة ~70:1 لكل إشارة).classic — يزرع ترويسة cookie ضخمة الحجم بدلاً من ذلك (تضخيم بنسبة ~4000:1 لكل إشارة).كل اتصال يعيد الإشارة إلى الترويسة المزروعة آلاف المرات لكل تدفق (--headers، الافتراضي 5000)، عبر تدفقات متعددة لكل اتصال (--streams، الافتراضي 10) واتصالات متوازية متعددة (--threads، الافتراضي 1). إذا أغلق الخادم اتصالاً، فإن الأداة تعيد الاتصال فورًا وتستمر حتى يتم إيقافها يدويًا — هذه حلقة تعليق مستمر، وليست فحصًا لمرة واحدة.
معرّفات ذات صلة لمنصات أخرى متأثرة (غير منفذة أو مختبرة في هذا المستودع):
CVE-2026-47774النطاق الكامل لفئة الضعف الأساسية، من باب الاستيفاء — تقنية "قنبلة 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 | متتبع بشكل منفصل | لا |
| CVE | CVE-2026-49975 |
| CWE | CWE-789 (تخصيص ذاكرة بقيمة حجم مفرطة، وفقًا لـ NVD/CVE.org)؛ يُتتبع أيضًا كـ CWE-409 (معالجة غير صحيحة للبيانات عالية الضغط) من قبل بعض الموردين |
| CVSS | 7.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-2026-49975 ينطبق فقط على هدف يستوفي كلا المعيارين في القسم 1 — يمكن الوصول إليه عبر HTTP/2 و يشغّل إصدار mod_http2 معرضًا للخطر وضمن النطاق (2.4.17 ≤ الإصدار ≤ 2.4.67، الإعداد الافتراضي). أمر curl -vkI بسيط ضد منفذ HTTPS للهدف كافٍ للتحقق من كليهما — لا حاجة لماسح ضوئي أو أعلام إضافية:
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 أو فحص بانر مكافئ.لا شيء يتجاوز هذا يُستخدم للاستطلاع في هذا المستودع — لا حركة استغلال نشطة، ولا ماسحات ثغرات، ولا مسح للمنافذ.