
# التحليل الفني لـ CVE-2026-24072 تحليل فني لثغرة CVE-2026-24072، وهي ثغرة تصعيد صلاحيات محلية في وحدة mod_rewrite الخاصة بخادم Apache HTTP، بما في ذلك السبب الجذري والتصحيحات ومختبر اختبار معزول بتقنية Docker للتحقق.
CVE-2026-24072 هو ثغرة تصعيد صلاحيات محلية متوسطة الخطورة في Apache HTTP Server 2.4.66 والإصدارات الأقدم. تسمح لمؤلفي
.htaccessالمحليين بقراءة ملفات عشوائية على نظام الملفات بصلاحيات مستخدمhttpdمن خلال استغلال تقييم تعبيراتap_exprداخلmod_rewriteوmod_setenvifوmod_proxy_fcgi.
| الحقل | القيمة |
|---|
| معرف CVE | CVE-2026-24072 |
| الخطورة | متوسطة (تصعيد صلاحيات محلي / كشف معلومات) |
| الإصدارات المتأثرة | Apache HTTP Server <= 2.4.66 |
| الإصدار المُصلَح | Apache HTTP Server 2.4.67 |
| ناقل الهجوم | محلي (يتطلب صلاحية كتابة .htaccess) |
CVE-2026-24072-analysis.mdmod_rewrite.diff, mod_setenvif.diff, mod_proxy_fcgi.diffexamples/يوفر محرك تقييم التعبيرات في Apache (ap_expr) دوال استكشاف نظام الملفات:
file(path) — يقرأ محتويات الملفfilesize(path) — يُرجع حجم الملف-d path, -e path, -f path, -s path, -L path, -h path, -x path — اختبارات نظام الملفاتفي 2.4.66 والإصدارات الأقدم، كانت الوحدات مثل mod_rewrite (عبر RewriteCond expr=...)، وmod_setenvif (عبر SetEnvIfExpr)، وmod_proxy_fcgi (عبر تعبيرات شرط ProxyFCGIBackendType) تقوم بتحليل وتقييم تعبيرات ap_expr دون تمرير علامة AP_EXPR_FLAG_RESTRICTED عند العمل في سياق .htaccess. هذا يعني أن أي مستخدم محلي يمكنه كتابة ملف .htaccess يمكنه استخدام دوال التعبير هذه لاستكشاف أو قراءة نظام الملفات بصلاحيات كاملة لعملية httpd.
الإصلاح بسيط من الناحية المفاهيمية: عند تحليل تعبيرات ap_expr في سياق .htaccess، قم بتمرير علامة AP_EXPR_FLAG_RESTRICTED.
تستخدم الوحدات الثلاث المُصحَحة نفس النمط البرمجي لاكتشاف سياق تحليل .htaccess:
int in_htaccess = cmd->pool == cmd->temp_pool;
عندما يحلل Apache ملفات .htaccess، يكون تجمع إعدادات الدليل (cmd->pool) هو نفسه التجمع المؤقت (cmd->temp_pool). هذه اصطلاح داخلي معروف في Apache لاكتشاف سياق .htaccess (لكل دليل) مقابل سياق الخادم الرئيسي/المضيف الافتراضي.
| الملف | الوصف |
|---|---|
CVE-2026-24072-analysis.md | التحليل الفني الكامل وتقييم الأثر |
mod_rewrite.diff | تصحيح لـ modules/mappers/mod_rewrite.c |
mod_setenvif.diff | تصحيح لـ modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | تصحيح لـ modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | شجرة المصدر للإصدار الضعيف من Apache |
httpd-2.4.67/ | شجرة المصدر للإصدار المُصلَح من Apache |
examples/ | ملفات .htaccess لإثبات المفهوم |
يتضمن هذا المستودع مختبر اختبار معزول باستخدام Docker يتيح لك التبديل بين وحدتي mod_rewrite الضعيفة والمُصحَحة للتحقق من نجاح الإصلاح:
# بناء وبدء المختبر
make build
make up
# تشغيل مصفوفة الاختبار الآلي الكاملة (كلا النموذجين)
make test
يستخدم المختبر ملفًا حارسًا (/opt/sentinel/secret.txt) يمكن قراءته فقط بواسطة مستخدم daemon (المستخدم الذي يعمل به httpd). في البناء الضعيف، يمكن لتعبيرات .htaccess قراءة ومطابقة محتويات الملف الحارس. في البناء المُصلَح، يفشل التحليل مع رسالة not available in restricted context.
راجع docs/TESTING.md للدليل الكامل.
| الملف | الوصف |
|---|---|
CVE-2026-24072-analysis.md | التحليل الفني الكامل وتقييم الأثر |
mod_rewrite.diff | تصحيح لـ modules/mappers/mod_rewrite.c |
mod_setenvif.diff | تصحيح لـ modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | تصحيح لـ modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | شجرة المصدر للإصدار الضعيف من Apache |
httpd-2.4.67/ | شجرة المصدر للإصدار المُصلَح من Apache |
examples/ | ملفات .htaccess لإثبات المفهوم |
docker/ | ملفات بناء Docker لمختبر الاختبار |
scripts/ | سكربتات التبديل والاختبار |
tests/ | تجهيزات الاختبار والمصفوفة |
docs/TESTING.md | دليل الاختبار الكامل |
docs/session/ | تصدير الجلسة من عملية التصميم |
هذا المستودع لأغراض تعليمية ودفاعية فقط. أمثلة إثبات المفهوم مخصصة لمساعدة المتخصصين في الأمن السيبراني على فهم هذه الثغرة والدفاع ضدها. لا تستخدم هذه التقنيات على أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.