
"एक विशेष रूप से तैयार HTTP अनुरोध आपके पूरे सर्वर से समझौता कर सकता है।" — React Security Team, Dec 2025
गंभीरता: CRITICAL | CVSS v3.1: 10.0 (अधिकतम) | स्थिति: सक्रिय रूप से शोषित
React2Shell React Server Components (RSC) में एक गंभीर सुरक्षा भेद्यता है — यह एक आधुनिक सुविधा है जिसकी मदद से React आपके वेब ऐप के कुछ हिस्सों को ब्राउज़र के बजाय सर्वर पर चला सकता है।
यह दोष इंटरनेट पर किसी भी हमलावर को — बिना लॉगिन, बिना विशेष पहुँच, और आपके सिस्टम की किसी भी पूर्व जानकारी के — आपके सर्वर पर एक दुर्भावनापूर्ण HTTP अनुरोध भेजने और उस पर जो चाहें वह कोड चलाने की अनुमति देता है। इसका मतलब है कि वे डेटा चुरा सकते हैं, मैलवेयर इंस्टॉल कर सकते हैं, आपकी फ़ाइलों को रैनसमवेयर से लॉक कर सकते हैं, या आपके सर्वर पर पूर्ण नियंत्रण पा सकते हैं।
इसे ऐसे समझें: आपके सर्वर का एक दरवाज़ा है जो केवल विश्वसनीय आगंतुकों के लिए खुलने वाला था, लेकिन असल में कोई भी अंदर आ सकता है — बस एक खास तरीके से दस्तक देकर।
| विशेषता | मान |
|---|---|
| CVE ID | CVE-2025-55182 (इसे React2Shell भी कहा जाता है) |
| गंभीरता | Critical — Remote Code Execution (RCE) |
| CVSS v3.1 स्कोर | 10.0 / 10.0 (अधिकतम संभव) |
| CVSS v4 स्कोर | 9.3 / 10.0 |
| कमज़ोरी का प्रकार | CWE-502 — अविश्वसनीय डेटा का डिसीरियलाइज़ेशन |
| हमले का तरीका | एकल HTTP POST अनुरोध, प्रमाणीकरण आवश्यक नहीं |
| खोजकर्ता | Lachlan Davidson (सुरक्षा शोधकर्ता) |
| घोषणा तिथि | 3 दिसंबर, 2025 |
| एक्सप्लॉइट स्थिति | सार्वजनिक एक्सप्लॉइट उपलब्ध — हमलावरों द्वारा सक्रिय रूप से उपयोग में |
| संबंधित CVE | CVE-2025-66478 (Next.js — पुष्टि किया गया डुप्लिकेट) |
react-server-dom-webpack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-parcel — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-turbopack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0
### प्रभावित फ्रेमवर्क
| Framework / Tool | Affected Scope |
|----------------------------|----------------------------------------------------|
| **Next.js 15.x – 16.x** | केवल App Router — Pages Router **प्रभावित नहीं** है |
| **React Router RSC** | केवल अस्थिर / पूर्वावलोकन चैनल |
| **Redwood SDK** | केवल RSC मोड |
| **Waku** | RSC सक्षम वाले सभी संस्करण |
| **Expo** | केवल RSC पूर्वावलोकन बिल्ड |
| **Vite RSC Plugin** | सभी एकीकरण |
| **Parcel RSC Plugin** | सभी एकीकरण |
| **Any custom RSC setup** | कोई भी सर्वर जो RSC Flight deserialization का उपयोग करता है |
> ⚠️ **महत्वपूर्ण:** आप तब भी असुरक्षित हैं जब आप सर्वर एक्शन या सर्वर फंक्शन का स्पष्ट रूप से उपयोग नहीं करते हैं — जब तक आपके ऐप में React Server Components सक्षम हैं।
> ✅ **प्रभावित नहीं:** केवल Pages Router का उपयोग करने वाले ऐप्स, या ऐप्स जिनमें कोई सर्वर-साइड React नहीं है।
---
## यह इतना खतरनाक क्यों है?
तीन कारण React2Shell को अत्यधिक गंभीर बनाते हैं:
1. **कोई प्रमाणीकरण आवश्यक नहीं।** इंटरनेट पर कोई भी इस हमले का प्रयास कर सकता है। खाते, टोकन या पूर्व पहुँच की कोई आवश्यकता नहीं है।
2. **डिफ़ॉल्ट इंस्टॉलेशन पर काम करता है।** `create-next-app` के साथ बनाया गया एक बिल्कुल नया Next.js ऐप — बिना किसी कस्टम कॉन्फ़िगरेशन के — तुरंत शोषण योग्य है। डेवलपर्स को असुरक्षित होने के लिए कुछ भी गलत करने की आवश्यकता नहीं है।
3. **लगभग 100% विश्वसनीयता।** सुरक्षा शोधकर्ताओं ने पुष्टि की है कि यह शोषण बिना पैच वाले सर्वरों के विरुद्ध लगभग हर बार काम करता है।
---
## हमला कैसे काम करता है?
### मूल कारण — सरल भाषा में
जब आपका React सर्वर क्लाइंट से डेटा प्राप्त करता है, तो वह यह समझने के लिए उस डेटा को संसाधित (डिसीरियलाइज़) करता है कि आगे क्या करना है। समस्या यह है कि React **यह कभी जाँच नहीं करता कि डेटा सुरक्षित है या वैध है** — वह आने वाली हर चीज़ पर आँख मूंदकर भरोसा करता है।
एक हमलावर सर्वर पर आंतरिक JavaScript व्यवहार को हाईजैक करने वाला विशेष रूप से तैयार किया गया डेटा भेजकर इसका फायदा उठाता है, जिससे अंततः उन्हें अपना कोड इंजेक्ट और निष्पादित करने की अनुमति मिलती है।
### तकनीकी व्याख्या
यह शोषण **प्रोटोटाइप पोल्यूशन** नामक तकनीक का उपयोग करता है:
1. हमलावर किसी भी RSC एंडपॉइंट पर एक तैयार HTTP POST अनुरोध भेजता है (किसी विशेष URL की आवश्यकता नहीं)।
2. React Flight Protocol पार्सर पेलोड को बिना किसी संरचनात्मक सत्यापन के संसाधित करता है।
3. दुर्भावनापूर्ण पेलोड `Object.prototype.then` को प्रदूषित करता है — एक मौलिक JavaScript ऑब्जेक्ट जिससे अन्य सभी ऑब्जेक्ट विरासत में आते हैं।
4. यह हमलावर को JavaScript के `Function` कंस्ट्रक्टर तक पहुँच प्रदान करता है।
5. हमलावर Node.js सर्वर प्रोसेस के रूप में मनमाना कोड निष्पादित करने के लिए `Function` कंस्ट्रक्टर का उपयोग करता है।```
Step 1 — Attacker sends crafted HTTP POST
↓
Step 2 — React deserializes payload blindly
↓
Step 3 — Object.prototype.then is hijacked (prototype pollution)
↓
Step 4 — Function constructor is accessed
↓
Step 5 — Attacker's code runs on the server
↓
Step 6 — Attacker has full server control
// This is a simplified version of the vulnerable code path inside React function parseFlightRequest(req) { const flight = req.body;
// ❌ NO validation — the server trusts whatever arrives
const decoded = dangerousDeserialize(flight); // Attack happens here
// If the attacker controls decoded.action → RCE
return executeServerReference(decoded.action);
}
### हमला कैसा दिखता है```http
POST /?flight=1 HTTP/1.1
Content-Type: text/plain
{
"status": "resolved_model",
"$1:__proto__:then": "node:process.mainModule.require('child_process').execSync('id > /tmp/rce')",
"_formData.get": "$1:constructor:constructor"
}
Please provide the Markdown content to translate.```bash
curl -X POST https://target.com/react?flight=1
-H "Content-Type: text/plain"
--data '["$ACTION_REF","proto","constructor","<attacker_payload>"]'
> 🚫 **कानूनी चेतावनी:** इसका उपयोग किसी भी ऐसी प्रणाली के विरुद्ध न करें जिसके स्वामी आप नहीं हैं या जिसके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण नहीं है।
---
## निर्धारित संस्करण — अभी पैच करें
### React RSC पैकेज
| Package | Patched Version |
|------------------------------|------------------------------|
| `react-server-dom-webpack` | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-parcel` | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-turbopack` | 19.0.1, 19.1.2, **19.2.1+** |
> 💡 **अनुशंसा:** संबंधित अनुवर्ती कमजोरियों (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779) को भी ठीक करने के लिए **19.2.3** पर अपग्रेड करें।
### Next.js
| आपका संस्करण | अपग्रेड करें |
|--------------|-------------|
| 13.x / 14.x | **14.2.35** |
| 15.0.x | **15.0.5** |
| 15.1.x | **15.1.9** |
| 15.2.x | **15.2.6** |
| 15.3.x | **15.3.6** |
| 15.4.x | **15.4.8** |
| 15.5.x | **15.5.7** |
| 16.0.x | **16.0.7** |
---
## अपनी सुरक्षा कैसे करें — चरण दर चरण
इन चरणों का **क्रम से** पालन करें। चरण 1 और 2 अनिवार्य हैं। बाकी सुरक्षा की अतिरिक्त परतें जोड़ते हैं।
### चरण 1 — React पैकेज अपग्रेड करें (सबसे महत्वपूर्ण)```bash
# Check your current version
npm list react-server-dom-webpack