
Node.js का उपयोग करके CVE-2025-66478 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट डेमो
इस रिपॉजिटरी में Next.js CVE-2025-66478 भेद्यता को दोहराने और शोध करने के लिए प्रूफ-ऑफ-कॉन्सेप्ट (PoC) कोड शामिल है। इसमें भेद्यता के परीक्षण के लिए एक असुरक्षित Next.js एप्लिकेशन और एक Node.js एक्सप्लॉइट स्क्रिप्ट शामिल है।
English · 中文
यह एक रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है जो Next.js सर्वर एक्शन्स प्रोसेसिंग के दौरान उत्पन्न होती है।
मुख्य बिंदु:
__proto__ प्रॉपर्टी के माध्यम से प्रोटोटाइप पोल्यूशन।| आइटम | विवरण |
|---|---|
| CVE ID | CVE-2025-66478 |
| प्रकार | रिमोट कोड एक्ज़ीक्यूशन (RCE) |
| मूल कारण | RSC फ्लाइट प्रोटोकॉल में असुरक्षित डी-सीरियलाइज़ेशन |
| गंभीरता (CVSS) | 10.0 (क्रिटिकल) |
| प्रभाव | सर्वर पर मनमाना सिस्टम कमांड निष्पादन |
__proto__ जैसी प्रॉपर्टी इंजेक्ट की जाती हैं।Object.prototype पोल्यूट हो जाता है।then प्रॉपर्टी इंजेक्ट करता है। Next.js लॉजिक गलती से इन ऑब्जेक्ट्स को Promises (Thenables) के रूप में पहचान लेता है।await करने का प्रयास करता है, तो then मेथड में इंजेक्ट किया गया दुर्भावनापूर्ण JavaScript कोड निष्पादित हो जाता है (उदाहरण के लिए, child_process.execSync)।sequenceDiagram
participant Attacker as Attacker
participant Server as Next.js Server
Attacker->>Server: POST / (JSON with "__proto__": {"then": ...})
Note right of Server: JSON parsing pollutes Object.prototype
Server->>Server: Application logic encounters an object
rect rgb(200, 150, 150)
Note right of Server: "Thenable" check exploitation chain
Server->>Server: Check: typeof obj.then === 'function'?
Server-->>Server: Yes (due to pollution)
end
Server->>Server: Await/execute malicious .then()
Note right of Server: Malicious JS code runs (RCE)
Server-->>Attacker: Response (Action redirect / Error message)
इसलिए, जब सर्वर इस हेरफेर किए गए Promise को प्रोसेस करता है, तो यह हमलावर द्वारा इंजेक्ट किए गए JavaScript कोड को निष्पादित करता है, जो सिस्टम कमांड निष्पादन का कारण बन सकता है। शामिल main.mjs इस हमले के परिदृश्य को दोहराने के लिए उदाहरण कोड है।
यह भेद्यता App Router का उपयोग करने वाले Next.js अनुप्रयोगों को प्रभावित करती है।
पैच किए गए संस्करण:
app/page.tsx: असुरक्षित एप्लिकेशन के लिए नमूना कोड।exploit.mjs: Node.js में लिखी गई एक्सप्लॉइट निष्पादन स्क्रिप्ट।# You can also use yarn or npm.
pnpm install
pnpm dev
सत्यापित करें कि आप अपने ब्राउज़र के माध्यम से http://localhost:3000 तक पहुँच सकते हैं।
pnpm exploit
डिफ़ॉल्ट रूप से, यह लोकल एड्रेस (http://localhost:3000) को लक्षित करता है। किसी भिन्न एड्रेस का परीक्षण करने के लिए, --url विकल्प का उपयोग करें:
pnpm exploit --url http://target-ip:3000
यह कोड केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। पूर्व अनुमति के बिना सिस्टम या नेटवर्क के विरुद्ध इस टूल का उपयोग करना अवैध है, और ऐसे उपयोग से उत्पन्न होने वाली किसी भी समस्या की पूरी जिम्मेदारी उपयोगकर्ता की होगी।