
Next.js CVE-2025-66478 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Server Actions में असुरक्षित डिसीरियलाइज़ेशन और प्रोटोटाइप पोल्यूशन के माध्यम से RCE का प्रदर्शन करता है। सुरक्षा अनुसंधान के लिए कमज़ोर ऐप और Python एक्सप्लॉइट स्क्रिप्ट शामिल है।
यह रिपॉज़िटरी Next.js CVE-2025-66478 भेद्यता को पुनरुत्पादित करने और अनुसंधान करने के लिए एक प्रूफ़ ऑफ़ कॉन्सेप्ट (PoC) प्रदान करती है। इसमें एक असुरक्षित Next.js एप्लिकेशन और भेद्यता का परीक्षण करने हेतु एक Python एक्सप्लॉयट स्क्रिप्ट शामिल है।
यह Next.js सर्वर एक्शन्स की प्रोसेसिंग में उत्पन्न होने वाली एक रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है।
मुख्य बातें:
__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
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 Gadget
Server->>Server: Checks: 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 info)परिणामस्वरूप, जब सर्वर इस हेरफेर किए गए Promise को प्रोसेस करता है, तो यह हमलावर द्वारा इंजेक्ट किया गया JavaScript कोड निष्पादित करता है, जो सिस्टम कमांड निष्पादन का कारण बन सकता है। शामिल main.py इस हमले के परिदृश्य को पुनरुत्पादित करने वाला उदाहरण कोड है।
यह भेद्यता App Router का उपयोग करने वाले Next.js एप्लिकेशनों को प्रभावित करती है।
स्थिर (फिक्स्ड) संस्करण:
next.js/: असुरक्षित Next.js वेब एप्लिकेशन का उदाहरण कोड।exploit/: Python में लिखी गई एक्सप्लॉयट निष्पादन स्क्रिप्ट (main.py)।सबसे पहले, आपको लक्षित Next.js सर्वर को चलाना होगा।
next.js डायरेक्टरी पर जाएँ:
cd next.js
निर्भरताएँ इंस्टॉल करें:
npm install
# You can also use yarn or pnpm.
डेवलपमेंट सर्वर प्रारंभ करें:
npm run dev
सुनिश्चित करें कि आप अपने ब्राउज़र के माध्यम से http://localhost:3000 तक पहुँच सकते हैं।
अब आप Python स्क्रिप्ट का उपयोग करके भेद्यता का परीक्षण कर सकते हैं।
प्रोजेक्ट रूट से exploit डायरेक्टरी पर जाएँ:
cd exploit
(वैकल्पिक) वर्चुअल एनवायरनमेंट उपयोग करने की अनुशंसा की जाती है:
python3 -m venv venv
source venv/bin/activate # For Windows: venv\Scripts\activate
आवश्यक लाइब्रेरीज़ इंस्टॉल करें:
requests मॉड्यूल आवश्यक है।
pip install requests
स्क्रिप्ट चलाएँ:
python main.py
डिफ़ॉल्ट रूप से, यह स्थानीय पते (http://localhost:3000) को लक्षित करता है। किसी भिन्न पते का परीक्षण करने के लिए, --url विकल्प का उपयोग करें:
python main.py --url http://target-ip:3000
यह कोड केवल सुरक्षा अनुसंधान और शैक्षणिक उद्देश्यों के लिए प्रदान किया गया है। बिना पूर्व अनुमति के सिस्टम या नेटवर्क के विरुद्ध इस टूल का उपयोग करना अवैध है, और ऐसे उपयोग से उत्पन्न किसी भी समस्या के लिए उपयोगकर्ता पूर्ण रूप से जिम्मेदार है।