Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/abraxas/tomcat-rewrite-ns-loop
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبمختبرات وتدريب عملي
GitHubabraxas/tomcat-rewrite-ns-loop

tomcat-rewrite-ns-loop

Apache Tomcat 11.0.27 - عالي - عن بُعد - DoS - RewriteValve [NS] تثبيت العامل

عرض المستودع
2124منذ 9 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - tomcat-rewrite-ns-loop

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  tomcat-rewrite-ns-loop

المقال التقني: https://abraxaslabs.tech/research/tomcat-rewrite-ns-loop

tomcat-rewrite-ns-loop

التصنيف: DoS الوصول: عن بُعد

Apache Tomcat 11.0.27 (52f3b364) - tomcat.apache.org

تقوم RewriteValve.parseRuleFlag بمطابقة البادئة. بعد NC/NE، أي علم متبقٍّ يبدأ بـ startsWith("N") يُفعِّل next. تصبح [NS] (nosubreq) و[NV] (novary) المنسوختان من httpd هما [N]. الاستبدال - يترك substitution بقيمة null؛ عندها تُعيد RewriteRule.evaluate عنوان URL الأصلي. isNext() مع newtest غير فارغ يضبط i = -1 دون حد أقصى للدورات، لذا فإن طلب GET واحد غير مُصادَق يطابق القاعدة يُثبِّت خيط موصل HTTP حتى يقطع العميل الاتصال أو تُعاد تشغيل العملية. [N] و[S=-1] الصريحان هما نفس التثبيت. [L,NS] آمن لأن isLast() يقطع أولاً.

أصلحت CVE-2026-65927 (مهمة، 11.0.25) إعادة تشغيل [N] من القاعدة الثانية. لا يزال هذا التثبيت بلا حد أقصى للدورات. أضاف main في اليوم نفسه بعد 11.0.27 الثابت MAX_REWRITE_ROUNDS=1000 ومطابقة الأعلام الدقيقة (2da9fddb، 8992dbdd) دون استشارة أمنية.

المعرّفلا توجد CVE بعد
التصنيفDoS
الوصولعن بُعد (HTTP غير مُصادَق)
CWECWE-835
CVSSعالية: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
المنتجApache Tomcat
المتأثر11.0.27 (52f3b364e5882a5dbcfc42cb8313a7c2ae532c64) RewriteValve
المصادقةHTTP غير مُصادَق
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ثبَّتُّ الوسم 11.0.27 وقرأت RewriteValve.invoke. الصمام غير موجود في conf/server.xml الافتراضي. مسار Host الافتراضي هو conf/Catalina/localhost/rewrite.config. المختبر هو HTTP عبر loopback على 127.0.0.1:18910. حزمة tarball الرسمية 11.0.27. ليس RCE.

ما يمكن للمهاجم فعله

الطريقةالموقعالصلاحية
GET /loop غير مُصادَق يطابق RewriteRule ^/loop$ - [NS] في rewrite.config الخاص بـ HostRewriteValve.invoke i = -1 لأن startsWith("N") على الرمز NSالتوافر (مُثبَت مختبرياً): تثبيت خيط موصل HTTP واحد حتى يقطع العميل الاتصال أو تُعاد تشغيل العملية. المختبر: انتهت مهلة /loop عند 4.002s.
GET /next غير مُصادَق مع [N] صريحنفس إعادة تشغيل isNext()التوافر (مُثبَت مختبرياً): نفس التثبيت. المختبر: انتهت مهلة /next عند 4.003s.
GET /skip غير مُصادَق مع [S=-1]i += -1 ثم زيادة forالتوافر (مُثبَت مختبرياً): نفس التثبيت. المختبر: انتهت مهلة /skip عند 4.002s.
طلب مطابق واحد لكل عاملنفس الموقع، maxThreads من عناوين URL مطابقة متزامنةالتوافر (مُستنتَج): ملء مجموعة الموصلات (استخدم المختبر 32؛ الافتراضي الأصلي هو 200). عندها تصطف الطلبات الجديدة أو تُرفض. استمر /ok الشقيق في الاستجابة أثناء وجود /loop واحد قيد التنفيذ.
التعليق مقابل 404 في 13ms على /okتوقيت next/skip مقابل [L]الاستطلاع (مُثبَت مختبرياً): استنتاج أن قاعدة next/skip قد طابقت. المختبر: تعليق 4.002s مقابل 404 في 0.013s.

مُثبَت مختبرياً مقابل مُستنتَج: تعليق /loop [NS]، وتعليق /next [N]، وتعليق /skip [S=-1]، و/ok [L] 404 في 13ms، و/safe [L,NS] 404 في 5ms، و/ok الشقيق 404 أثناء وجود /loop قيد التنفيذ كلها مُثبَتة مختبرياً. استنفاد المجموعة مُستنتَج من تثبيت خيط واحد مع maxThreads.

يتطلب: RewriteValve على Host أو Context وقاعدة rewrite.config مطابقة. الـ Valve اختياري (opt-in)، من نفس فئة AJP المعلّق. نسخ [NS] من httpd هو قاعدة مطابقة، وليس حلقة [N] لانهائية مقصودة.

السطح المجاور الذي يبقى مغلقًا

السطحالمختبر
[L,NS] (httpd last+nosubreq)/safe 404 في 5ms (L-ns-safe=yes)
طلبات أخرى قيد التنفيذ أثناء تثبيت خيط واحد/ok 404 في 13ms أثناء /loop (sibling-alive=yes)
server.xml الافتراضي بدون RewriteValveالـ valve غائب؛ المتبقي لا يُفعَّل
RCE / قراءة WEB-INF / تجاوز قيد CVE-2026-65927[N] الآن يعيد البدء عند القاعدة 0؛ هذا المتبقي يتعلق بالتوافر فقط
Manager / JMX / AJP / DefaultServlet PUTدون تغيير؛ PUT لا يزال readonly

لا تنفيذ كود بصلاحيات مستخدم Tomcat. لا قراءة لـ conf/ أو WEB-INF. لا سرقة جلسة. لا نشر عبر Manager. تبقى الـ JVM قائمة؛ العمال الآخرون ما زالوا يستجيبون حتى تمتلئ البركة (pool).

المختبر

cd lab
./run.sh

منفذ الاسترجاع 127.0.0.1:18910 يعيّن حاوية 8080. مشروع Compose tomcat-rewrite-ns-loop. وسم الصورة tomcat-rewrite-ns-loop:11.0.27. الملف الرسمي apache-tomcat-11.0.27.tar.gz ببصمة SHA512 a617896307cada4884b24f80c4e977ddad8b3e0f88ce0e2a6eea29d5f332498e276ae5976c227a9c8daecf05c7c90def684a3766dd5a81f47a56d8b1adf43dc3. الشاهد TOMCAT-REWRITE-NS-LOOP-WITNESS. السطر الأخير:

SUCCESS TOMCAT-REWRITE-NS-LOOP control-ok=yes ns-hang=yes L-ns-safe=yes n-hang=yes skip-hang=yes sibling-alive=yes TOMCAT-REWRITE-NS-LOOP-WITNESS

Lab rewrite.config:

RewriteRule ^/loop$ - [NS]
RewriteRule ^/next$ - [N]
RewriteRule ^/skip$ - [S=-1]
RewriteRule ^/ok$ - [L]
RewriteRule ^/safe$ - [L,NS]

الإصلاح

تحديد عدد جولات إعادة الكتابة (MAX_REWRITE_ROUNDS=1000 على main بعد هذا الوسم، الالتزام 2da9fddb). أعلام المطابقة التامة بحيث يفشل [NS] في التحليل (الالتزام 8992dbdd). رفض skip < 0. حتى تصل هذه التغييرات إلى إصدار: تجنّب [NS]/[NV]/[N]/[S=-1] في قواعد المطابقة، أو أزل RewriteValve.

المراجع

  • github.com/apache/tomcat وسم 11.0.27 (52f3b364e5882a5dbcfc42cb8313a7c2ae532c64)
  • RewriteValve.java إعادة تشغيل isNext() و startsWith("N")
  • RewriteRule.java استبدال - يُعيد عنوان URL الأصلي
  • نظير (خطأ في الفهرس، وليس هذه الحلقة غير المحدودة): CVE-2026-65927
  • نفس فئة تثبيت الخيوط المهمة: CVE-2026-78383 AJP، CVE-2026-77791 إغلاق WebSocket
  • CWE-835
تنزيل الأداة