
CVE-2025-55182 और CVE-2025-66478 के लिए निष्क्रिय भेद्यता स्कैनर, जो फ्रेमवर्क फिंगरप्रिंटिंग, संस्करण विश्लेषण और RSC एंडपॉइंट प्रोबिंग के माध्यम से React Server Components में अनप्रमाणित RCE का पता लगाता है।
React Server Components Flight Protocol रिमोट कोड एक्ज़ीक्यूशन पहचान उपकरण
यह स्कैनर उन सिस्टमों की पहचान करता है जो CVE-2025-55182 (React) और CVE-2025-66478 (Next.js) के प्रति संभावित रूप से संवेदनशील हैं — ये React Server Components (RSC) "Flight" प्रोटोकॉल में बिना प्रमाणीकरण वाली रिमोट कोड एक्ज़ीक्यूशन (RCE) की क्रिटिकल भेद्यताएँ हैं।
मुख्य जोखिम कारक:
यह React के Server Components कार्यान्वयन में एक क्रिटिकल असुरक्षित डिसीरियलाइज़ेशन (insecure deserialization) भेद्यता है। RSC "Flight" प्रोटोकॉल आने वाले पेलोड की संरचना और प्रकारों को सही ढंग से सत्यापित करने में विफल रहता है, जिससे हमलावर दुर्भावनापूर्ण डेटा इंजेक्ट कर सकते हैं जो सर्वर-साइड निष्पादन को प्रभावित करता है।
| पैकेज | संवेदनशील संस्करण | पैच किए गए संस्करण |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary.77+, 15.x, 16.0.0-16.0.6 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Attacker → Crafted HTTP POST → RSC Endpoint → Deserialization → RCE
हमले के लिए केवल किसी भी Server Function एंडपॉइंट पर विशेष रूप से तैयार किया गया HTTP अनुरोध भेजना आवश्यक है। किसी प्रमाणीकरण की आवश्यकता नहीं है, और डिफ़ॉल्ट कॉन्फ़िगरेशन संवेदनशील हैं।
स्कैनर संभावित रूप से संवेदनशील सिस्टम की पहचान करने के लिए पैसिव फ़िंगरप्रिंटिंग और प्रोटोकॉल प्रोबिंग का उपयोग करता है। यह शोषण (exploitation) का प्रयास नहीं करता है।
┌─────────────────────────────────────────────────────────────────┐
│ DETECTION PIPELINE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Framework Detection │
│ ├── HTTP Headers (X-Powered-By: Next.js) │
│ ├── Page Source (__NEXT_DATA__, react artifacts) │
│ └── Build Manifests │
│ │
│ 2. Version Fingerprinting │
│ ├── Embedded version strings in JS bundles │
│ ├── Package version patterns │
│ └── Build manifest analysis │
│ │
│ 3. RSC Endpoint Discovery │
│ ├── Send RSC headers (RSC: 1, Accept: text/x-component) │
│ ├── Analyze response Content-Type │
│ └── Detect Flight protocol markers in response │
│ │
│ 4. Server Actions Probing │
│ ├── POST request with minimal Flight payload │
│ ├── Check for deserialization processing │
│ └── Identify action endpoints │
│ │
│ 5. Vulnerability Assessment │
│ ├── Correlate version with known vulnerable ranges │
│ ├── Weight RSC endpoint presence │
│ └── Generate confidence-scored verdict │
│ │
└─────────────────────────────────────────────────────────────────┘
| संकेतक | पहचान विधि | विश्वास |
|---|---|---|
X-Powered-By: Next.js | HTTP हेडर निरीक्षण | उच्च |
__NEXT_DATA__ स्क्रिप्ट टैग | HTML स्रोत पार्सिंग | उच्च |
/_next/ एसेट पथ | HTML स्रोत पार्सिंग | मध्यम |
| React हाइड्रेशन मार्कर | HTML स्रोत पार्सिंग | मध्यम |
Flight प्रोटोकॉल एक विशिष्ट वायर फॉर्मेट का उपयोग करता है:
0:["$","div",null,{"children":"Hello"}]
1:["$","$L1",null,{}]
2:{"name":"ServerComponent"}
स्कैनर निम्न की खोज करता है:
text/x-component कंटेंट-टाइप{number}:{payload}$, $L, $F, $@, $undefinedनिम्न में संस्करण पैटर्न की खोज करता है:
/_next/static/chunks/)[email protected])requests लाइब्रेरी# Clone or download the scanner files
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 cve-2025-55182-scanner.py --help
# Single target
python3 cve-2025-55182-scanner.py -t https://example.com
# With verbose output
python3 cve-2025-55182-scanner.py -t https://example.com -v
# Create targets file (one URL per line)
echo "https://app1.example.com" > targets.txt
echo "https://app2.example.com" >> targets.txt
# Scan all targets
python3 cve-2025-55182-scanner.py -f targets.txt -o results.json
python3 cve-2025-55182-scanner.py -t https://example.com \
--timeout 15 \
--threads 10 \
--user-agent "SecurityAudit/1.0" \
-v \
-o scan_results.json
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
-t, --target | एकल लक्ष्य URL | - |
-f, --file | लक्ष्य सूची वाली फ़ाइल | - |
-o, --output | JSON आउटपुट फ़ाइल | - |
-v, --verbose | विस्तृत साक्ष्य दिखाएँ | False |
--timeout | अनुरोध टाइमआउट (सेकंड) | 10 |
--threads | समवर्ती थ्रेड | 5 |
--verify-ssl | SSL प्रमाणपत्र सत्यापित करें | False |
--user-agent | कस्टम User-Agent | Mozilla/5.0... |
--no-banner | बैनर छिपाएँ | False |
गहन प्रोटोकॉल विश्लेषण के लिए:
python3 rsc_analyzer.py https://example.com 2>/dev/null
यह विस्तृत Flight प्रोटोकॉल विश्लेषण और घटक गणना (component enumeration) प्रदान करता है।
| स्थिति | अर्थ | आवश्यक कार्रवाई |
|---|---|---|
| 🔴 VULNERABLE | पुष्टि किया गया संवेदनशील संस्करण पाया गया | तत्काल पैचिंग |
| 🔴 LIKELY_VULNERABLE | RSC के साथ React 19.x, संस्करण संवेदनशील सीमा में | अत्यावश्यक पैचिंग |
| 🟡 POTENTIALLY_VULNERABLE | RSC एंडपॉइंट मिले, संस्करण अज्ञात | जाँच करें और पैच करें |
| 🟢 NOT_VULNERABLE | पैच किया गया संस्करण पुष्ट | अपडेट के लिए निगरानी रखें |
| 🔵 UNKNOWN | स्थिति निर्धारित नहीं की जा सकी | मैन्युअल सत्यापन आवश्यक |
| ⚪ ERROR | स्कैन विफल | पुनः प्रयास करें या मैन्युअल जाँच करें |