
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 | स्कैन विफल | पुनः प्रयास करें या मैन्युअल जाँच करें |
======================================================================
Target: https://app.example.com
Status: VULNERABLE
Framework: Next.js
Version: 19.1.0
RSC Endpoints: /, /_next/data
Evidence:
- X-Powered-By header: Next.js
- React version detected: 19.1.0
- RSC Flight response at / (Content-Type: text/x-component)
- Flight protocol markers detected at /
Recommendations:
→ CRITICAL: Immediate patching required!
→ Upgrade React to 19.0.1, 19.1.2, or 19.2.1
→ Upgrade Next.js to latest patched version (15.0.5+, 16.0.7)
→ Enable WAF rules to block malicious RSC payloads
→ Monitor for anomalous POST requests to RSC endpoints
======================================================================
{
"target": "https://app.example.com",
"status": "VULNERABLE",
"framework": "Next.js",
"version": "19.1.0",
"rsc_endpoints": ["/", "/_next/data"],
"evidence": [
"X-Powered-By header: Next.js",
"React version detected: 19.1.0",
"RSC Flight response at / (Content-Type: text/x-component)"
],
"recommendations": [
"CRITICAL: Immediate patching required!",
"Upgrade React to 19.0.1, 19.1.2, or 19.2.1"
]
}
| परिणाम प्रकार | विश्वास | स्पष्टीकरण |
|---|---|---|
| VULNERABLE (संस्करण सहित) | उच्च (90%+) | संस्करण स्ट्रिंग ज्ञात संवेदनशील संस्करण से मेल खाती है |
| VULNERABLE (हेडर के माध्यम से) | उच्च (85%+) | X-Powered-By ने संवेदनशील संस्करण उजागर किया |
| LIKELY_VULNERABLE | मध्यम-उच्च (70-85%) | React 19.x पाया गया, RSC सक्रिय, संस्करण स्पष्ट रूप से पैच नहीं किया गया |
| POTENTIALLY_VULNERABLE | मध्यम (50-70%) | RSC एंडपॉइंट प्रतिक्रिया देते हैं, लेकिन संस्करण अज्ञात |
| NOT_VULNERABLE | उच्च (85%+) | पैच किया गया संस्करण स्पष्ट रूप से पाया गया |
| UNKNOWN | निम्न (<50%) | अपर्याप्त जानकारी एकत्र की गई |
✅ बंडलों में स्पष्ट संस्करण स्ट्रिंग मिली
✅ X-Powered-By हेडर संस्करण उजागर करता है
✅ एकाधिक RSC संकेतक मौजूद
✅ Flight प्रोटोकॉल प्रतिक्रिया की पुष्टि हुई
✅ सर्वर RSC POST अनुरोध स्वीकार करता है
❌ कोई संस्करण जानकारी उजागर नहीं
❌ WAF/CDN प्रतिक्रियाओं को छिपा रहा है
❌ कस्टम फ्रेमवर्क कार्यान्वयन
❌ भारी कैशिंग प्रोब्स को रोक रही है
❌ रेट लिमिटिंग पहचान को अवरुद्ध कर रही है
| परिदृश्य | ऐसा क्यों होता है | शमन (Mitigation) |
|---|---|---|
| पुराना संस्करण स्ट्रिंग कैश्ड | CDN/बिल्ड कैश | कई एंडपॉइंट जाँचें |
| अपडेट के बाद RSC अक्षम | बिना रीबिल्ड के कॉन्फ़िग परिवर्तन | बिल्ड तिथि सत्यापित करें |
| गैर-मानक RSC कार्यान्वयन | कस्टम फ्रेमवर्क | मैन्युअल सत्यापन |
| परिदृश्य | ऐसा क्यों होता है | शमन (Mitigation) |
|---|---|---|
| बंडलों से संस्करण हटाया गया | प्रोडक्शन ऑप्टिमाइज़ेशन | बिल्ड मेनिफेस्ट जाँचें |
| WAF प्रोब्स को अवरुद्ध कर रहा है | सुरक्षा नियंत्रण | अनुमत IP से परीक्षण करें |
| गैर-मानक पथों पर RSC | कस्टम रूटिंग | पाथ वर्डलिस्ट का विस्तार करें |
| SSR संकेतकों के बिना SPA | केवल-क्लाइंट रेंडरिंग | API एंडपॉइंट जाँचें |
| कारक | पहचान पर प्रभाव |
|---|---|
| Cloudflare/WAF | प्रोब्स को रोक सकता है, हेडर छिपा सकता है |
| CDN कैशिंग | पुरानी संस्करण जानकारी परोस सकता है |
| लोड बैलेंसर | विभिन्न ऐप संस्करणों पर रूट कर सकते हैं |
| Kubernetes/कंटेनर | प्रत्येक पॉड भिन्न हो सकता है |
| फीचर फ्लैग | RSC सशर्त रूप से सक्षम हो सकता है |
क्रिटिकल निष्कर्षों के लिए, हमेशा निम्न के साथ सत्यापन करें:
npm audit या yarn auditतत्काल कार्रवाई (0-24 घंटे):
तुरंत पैच करें
npm install [email protected] [email protected]
npm install [email protected] # or latest patched
WAF नियम सक्षम करें - Cloudflare, Akamai और AWS WAF ने सुरक्षात्मक नियम तैनात किए हैं
RSC एंडपॉइंट पर संदिग्ध POST अनुरोधों के लिए लॉग की निगरानी करें
अल्पकालिक कार्रवाई (24-72 घंटे):
package.json में React/Next.js संस्करणों को मैन्युअल रूप से सत्यापित करें# Batch scan all company assets
cat domains.txt | while read domain; do
python3 cve-2025-55182-scanner.py -t "$domain" -o "results_${domain//\//_}.json"
done
# Aggregate results
jq -s '[.[] | select(.status == "VULNERABLE" or .status == "LIKELY_VULNERABLE")]' results_*.json > critical_findings.json
# GitHub Actions example
- name: CVE-2025-55182 Check
run: |
python3 cve-2025-55182-scanner.py -t ${{ env.APP_URL }} -o results.json
if grep -q '"status": "VULNERABLE"' results.json; then
echo "::error::Critical vulnerability detected!"
exit 1
fi
| संस्करण | दिनांक | परिवर्तन |
|---|---|---|
| 1.0.0 | 2025-12-03 | प्रारंभिक रिलीज़ |
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है। इसका उपयोग केवल उन सिस्टमों पर करें जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। लेखक इस उपकरण के दुरुपयोग या इससे होने वाली क्षति के लिए कोई ज़िम्मेदारी नहीं लेते हैं।