Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
tomcat-rewrite-ns-loop — Apache Tomcat 11.0.27 - उच्च - रिमोट - DoS - RewriteValve [NS] worker pin | Kitploit
उपकरण/GitHubGitHub/abraxas/tomcat-rewrite-ns-loop
रक्षात्मक उपकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षालैब और अभ्यास
GitHubabraxas/tomcat-rewrite-ns-loop

tomcat-rewrite-ns-loop

Apache Tomcat 11.0.27 - उच्च - रिमोट - DoS - RewriteValve [NS] worker pin

रिपॉजिटरी देखें
73 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - tomcat-rewrite-ns-loop

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

tomcat-rewrite-ns-loop

वर्ग: DoS पहुँच: Remote

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

RewriteValve.parseRuleFlag prefix-matching करता है। NC/NE के बाद, कोई भी शेष फ्लैग जो startsWith("N") से शुरू होता है, अगला चरण सक्षम बनाता है। httpd से कॉपी किए गए [NS] (nosubreq) और [NV] (novary) को [N] में बदल दिया जाता है। Substitution - substitution को null छोड़ देता है; इसके बाद RewriteRule.evaluate मूल URL लौटाता है। isNext() और एक गैर-null newtest के साथ i = -1 सेट हो जाता है, जिसमें round cap नहीं है, इसलिए एक अन-authenticated GET जो नियम से मेल खाता है, HTTP connector thread को तब तक पिन कर लेता है जब तक कि क्लाइंट डिस्कनेक्ट न कर दे या प्रोसेस रीस्टार्ट न हो। स्पष्ट [N] और [S=-1] वही पिन हैं। [L,NS] सुरक्षित है क्योंकि isLast() पहले ब्रेक करता है।

CVE-2026-65927 (Important, 11.0.25) ने दूसरे नियम पर [N] रीस्टार्ट को ठीक किया। यह पिन अभी भी round cap से मुक्त है। 11.0.27 के बाद Same-day main में MAX_REWRITE_ROUNDS=1000 और exact flag matching (2da9fddb, 8992dbdd) जोड़ी गई, बिना किसी security advisory के।

IDअभी तक कोई CVE नहीं
ClassDoS
ReachRemote (unauthenticated HTTP)
CWECWE-835
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProductApache Tomcat
Affected11.0.27 (52f3b364e5882a5dbcfc42cb8313a7c2ae532c64) RewriteValve
Authunauthenticated HTTP
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

मैंने टैग 11.0.27 को pin किया और RewriteValve.invoke पढ़ा। Valve स्टॉक conf/server.xml में नहीं है। Default Host path conf/Catalina/localhost/rewrite.config है। Lab 127.0.0.1:18910 पर loopback HTTP है। आधिकारिक 11.0.27 tarball। यह RCE नहीं है।

हमलावर क्या कर सकता है

MethodSinkPrivilege
Unauth GET /loop जो Host rewrite.config RewriteRule ^/loop$ - [NS] से मेल खाता हैRewriteValve.invoke i = -1 क्योंकि टोकन NS पर startsWith("N") हैAvailability (lab-proven): एक HTTP connector thread को pin करें जब तक कि क्लाइंट डिस्कनेक्ट न कर दे या प्रोसेस रीस्टार्ट न हो जाए। Lab: /loop का टाइमआउट 4.002s पर हुआ।
Unauth GET /next स्पष्ट [N] के साथसमान isNext() रीस्टार्टAvailability (lab-proven): वही पिन। Lab: /next का टाइमआउट 4.003s पर हुआ।
Unauth GET /skip [S=-1] के साथi += -1 फिर for इन्क्रिमेंटAvailability (lab-proven): वही पिन। Lab: /skip का टाइमआउट 4.002s पर हुआ।
प्रति वर्कर एक मेल खाने वाला अनुरोधसमान sink, maxThreads concurrent matching URLsAvailability (inferred): connector pool को भरें (lab ने 32 का उपयोग किया; स्टॉक डिफ़ॉल्ट 200 है)। नए अनुरोध अब कतार में लगते हैं या अस्वीकार होते हैं। एक /loop चल रहे होने के दौरान भाई /ok अभी भी उत्तर दे रहा था।
/ok पर 13ms 404 के विरुद्ध हंगnext/skip बनाम [L] का टाइमिंगRecon (lab-proven): बताएं कि एक next/skip नियम मेल खाया। Lab: 4.002s हंग बनाम 0.013s 404।

Lab-proven vs inferred: /loop [NS] हंग, /next [N] हंग, /skip [S=-1] हंग, /ok [L] 13ms में 404, /safe [L,NS] 5ms में 404, और /loop चल रहे होने के दौरान भाई /ok 404 lab-proven हैं। Pool exhaustion को एक-thread pin plus maxThreads से inferred किया गया है।

Requires: Host या Context पर RewriteValve और एक matching rewrite.config नियम। Valve opt-in है, commented-out AJP के समान वर्ग का। Copied httpd [NS] एक matching rule है, जानबूझकर बनाया गया infinite [N] लूप नहीं।

वह adjacent surface जो बंद रहती है

SurfaceLab
[L,NS] (httpd last+nosubreq)/safe 5ms में 404 (L-ns-safe=yes)
एक thread pin होने के दौरान अन्य in-flight requests/loop के दौरान /ok 13ms में 404 (sibling-alive=yes)
RewriteValve के बिना स्टॉक server.xmlvalve अनुपस्थित; leftover trigger नहीं होता
CVE-2026-65927 की RCE / WEB-INF read / constraint bypass[N] अब rule 0 पर रीस्टार्ट करता है; यह leftover केवल availability के लिए है
Manager / JMX / AJP / DefaultServlet PUTअपरिवर्तित; PUT अभी भी readonly है

Tomcat user के रूप में कोई code execution नहीं। conf/ या WEB-INF की कोई read नहीं। कोई session steal नहीं। कोई Manager deploy नहीं। JVM ऊपर रहता है; pool भर जाने तक अन्य workers अभी भी उत्तर देते हैं।

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18910 container 8080 को map करता है। Compose project tomcat-rewrite-ns-loop। Image tag tomcat-rewrite-ns-loop:11.0.27। आधिकारिक apache-tomcat-11.0.27.tar.gz SHA512 a617896307cada4884b24f80c4e977ddad8b3e0f88ce0e2a6eea29d5f332498e276ae5976c227a9c8daecf05c7c90def684a3766dd5a81f47a56d8b1adf43dc3। Witness 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]

समाधान

rewrite rounds को सीमित करें (main पर इस टैग के बाद MAX_REWRITE_ROUNDS=1000, commit 2da9fddb)। Exact-match flags ताकि [NS] parse में fail हो जाए (commit 8992dbdd)। skip < 0 को अस्वीकार करें। जब तक वे release में नहीं आते: matching rules पर [NS]/[NV]/[N]/[S=-1] से बचें, या RewriteValve हटा दें।

References

  • github.com/apache/tomcat टैग 11.0.27 (52f3b364e5882a5dbcfc42cb8313a7c2ae532c64)
  • RewriteValve.java में isNext() restart और startsWith("N")
  • RewriteRule.java substitution - मूल URL लौटाता है
  • Sibling (index bug, यह unbounded loop नहीं): CVE-2026-65927
  • Same Important thread-pin class: CVE-2026-78383 AJP, CVE-2026-77791 WebSocket close
  • CWE-835
टूल डाउनलोड करें