
CVE-2025-55182 RCE का पता React Server Components में लगाता है, npm/pnpm/yarn लॉकफ़ाइलों, Docker इमेजों, SBOMs और लाइव URL को स्कैन करके। इसमें ऑटो-फिक्स, SARIF आउटपुट और CI/CD एकीकरण शामिल हैं।
CVE-2025-55182 के लिए सुरक्षा स्कैनर - रिएक्ट सर्वर कंपोनेंट्स में एक गंभीर (CVSS 10.0) अप्रमाणित रिमोट कोड निष्पादन भेद्यता।
⚠️ अस्वीकरण
यह एक सुरक्षा स्कैनर है, एक शोषण उपकरण नहीं। इसे डेवलपर्स और सुरक्षा टीमों को उनके प्रोजेक्ट्स में कमजोर निर्भरताओं की पहचान करने में मदद करने के लिए डिज़ाइन किया गया है।
यह एक सामुदायिक-संचालित ओपन सोर्स प्रोजेक्ट है जो किसी भी प्रकार की वारंटी, स्पष्ट या निहित के बिना 'जैसा है' प्रदान किया जाता है। लेखक और योगदानकर्ता इस उपकरण के उपयोग से उत्पन्न किसी भी क्षति या सुरक्षा घटनाओं के लिए उत्तरदायी नहीं हैं।
अपने स्वयं के जोखिम और जिम्मेदारी पर उपयोग करें। हमेशा निष्कर्षों को मैन्युअल रूप से सत्यापित करें और अपने संगठन की सुरक्षा नीतियों का पालन करें। यदि आप कोई समस्या, बग, या सुझाव पाते हैं, तो कृपया प्रोजेक्ट को बेहतर बनाने में मदद करने के लिए योगदान करें।
🤝 योगदानकर्ता आवश्यक
यह प्रोजेक्ट सक्रिय रूप से परीक्षकों और योगदानकर्ताओं की तलाश कर रहा है! चाहे आप बग रिपोर्ट करना चाहते हों, सुविधाओं का सुझाव देना चाहते हों, दस्तावेज़ीकरण में सुधार करना चाहते हों, या कोड सबमिट करना चाहते हों - सभी योगदानों का स्वागत है। शुरू करने के लिए हमारी योगदान मार्गदर्शिका देखें।
यह प्रोजेक्ट समुदाय को CVE-2025-55182 पर प्रतिक्रिया देने में मदद करने के लिए मौजूद है। हम स्वीकार करते हैं और धन्यवाद देते हैं:
अपने प्रोजेक्ट की भेद्यता जांचने का सबसे तेज़ तरीका:```bash npx react2shell-guard .
बस इतना ही! यह आपकी वर्तमान निर्देशिका को स्कैन करेगा और तुरंत परिणाम दिखाएगा।
### 2. किसी विशिष्ट प्रोजेक्ट को स्कैन करें```bash
npx react2shell-guard /path/to/your/project
मिली कमजोरियाँ? उन्हें स्वतः ठीक करें:```bash
npx react2shell-guard fix --dry-run
npx react2shell-guard fix
npx react2shell-guard fix --install
### 4. लाइव URL स्कैन करें
जांचें कि तैनात एप्लिकेशन असुरक्षित है या नहीं:```bash
npx react2shell-guard scan-url https://your-app.com
पुष्टि करें कि आपका तैनात किया गया फिक्स काम कर रहा है:```bash npx react2shell-guard verify-patch https://your-app.com
### 6. कंटेनर इमेजेस को स्कैन करें
जांचें कि क्या आपके Docker इमेजेस में कमजोर पैकेज हैं:```bash
npx react2shell-guard scan-image myapp:latest
स्वचालित रूप से कमजोरियों को ठीक करने के लिए एक GitHub PR बनाएं:```bash npx react2shell-guard create-pr --dry-run # Preview npx react2shell-guard create-pr # Create PR
---
## CVE-2025-55182 क्या है?
29 नवंबर, 2025 को, सुरक्षा शोधकर्ता लचलन डेविडसन ने रिएक्ट सर्वर कम्पोनेंट्स में एक गंभीर भेद्यता की खोज की और जिम्मेदारीपूर्वक इसका खुलासा किया। यह दोष इस बात में मौजूद है कि रिएक्ट रिएक्ट सर्वर फंक्शन एंडपॉइंट्स पर भेजे गए पेलोड को कैसे डिकोड करता है, जिससे अप्रमाणित हमलावर बिना किसी उपयोगकर्ता इंटरैक्शन के प्रभावित सर्वरों पर रिमोट कोड निष्पादन प्राप्त कर सकते हैं।
CVE-2025-55182 को CVSS 10.0 (गंभीर) रेटिंग दी गई है और यह रिएक्ट सर्वर कम्पोनेंट्स (RSC) और RSC "Flight" प्रोटोकॉल का उपयोग करने वाले फ्रेमवर्क को प्रभावित करता है।
**प्रभावित पैकेज:**
- `react-server-dom-webpack` 19.0.0, 19.1.0-19.1.1, 19.2.0
- `react-server-dom-parcel` (समान संस्करण)
- `react-server-dom-turbopack` (समान संस्करण)
- `next` 15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.6, 16.0.0-16.0.6
**अधिक जानकारी:**
- [React सुरक्षा सलाहकार](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
- [Wiz रिसर्च](https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182)
---
## इंस्टॉलेशन (वैकल्पिक)
बार-बार उपयोग के लिए, वैश्विक रूप से इंस्टॉल करें:```bash
npm install -g react2shell-guard
फिर बिना npx के उपयोग करें:```bash
react2shell-guard .
---
## उपयोग गाइड
### बुनियादी स्कैनिंग```bash
# Scan current directory
react2shell-guard .
# Scan specific directory
react2shell-guard /path/to/project
# Scan and ignore certain paths
react2shell-guard . --ignore-path "examples/**" "test/**"
react2shell-guard .
react2shell-guard . --json
react2shell-guard . --sarif
react2shell-guard . --html report.html
### CLI विकल्प
| विकल्प | विवरण |
|--------|-------------|
| `--json` | परिणाम JSON के रूप में आउटपुट करें |
| `--sarif` | परिणाम SARIF 2.1.0 के रूप में आउटपुट करें |
| `--html <file>` | स्वतंत्र HTML रिपोर्ट उत्पन्न करें |
| `--no-exit-on-vuln` | जब कमजोरियाँ मिलें तो कोड 1 के साथ बाहर न निकलें |
| `--ignore-path <patterns>` | अनदेखा करने के पथ (जैसे, `examples/**`) |
| `--debug` | डीबग आउटपुट सक्षम करें |
### निकास कोड
| कोड | अर्थ |
|------|---------|
| `0` | कोई कमजोरी नहीं मिली |
| `1` | कमजोरियाँ पाई गईं |
| `2+` | घातक त्रुटि |
## लाइव URL स्कैनिंग
यह जांचने के लिए लाइव एंडपॉइंट स्कैन करें कि वे असुरक्षित हैं या नहीं:```bash
# Scan a single URL
react2shell-guard scan-url https://example.com
# Batch scan from a file (one URL per line)
react2shell-guard scan-url urls.txt --list
# With options
react2shell-guard scan-url https://example.com --timeout 5000 --json
स्कैनर कमजोर React Server Components एंडपॉइंट्स को कमजोरी का शोषण किए बिना पहचानने के लिए निष्क्रिय फिंगरप्रिंटिंग का उपयोग करता है:
प्रोब अनुरोध: न्यूनतम पेलोड के साथ RSC सर्वर एक्शन कॉल का अनुकरण करते हुए एक क्राफ्टेड POST अनुरोध भेजता है:
multipart/form-data सामग्री प्रकार का उपयोग करता हैNext-Action हेडर शामिल करता हैप्रतिक्रिया विश्लेषण: कमजोरी के हस्ताक्षरों के लिए HTTP प्रतिक्रिया का विश्लेषण करता है:
^[0-9]+:E{ - RSC Flight प्रोटोकॉल त्रुटि प्रारूप"digest":"...RSC - त्रुटि प्रतिक्रियाओं में RSC डाइजेस्टReactServerComponentsError - React त्रुटि वर्ग नामtext/x-component.*error - घटक त्रुटि सामग्री प्रकारगैर-विनाशकारी: यह पूरी तरह से एक पहचान तंत्र है - यह किसी भी दुर्भावनापूर्ण पेलोड को निष्पादित नहीं करता है या कमजोरी का शोषण नहीं करता है। प्रोब सौम्य डेटा का उपयोग करता है जो कमजोर सर्वरों पर त्रुटि प्रतिक्रियाओं को ट्रिगर करता है लेकिन कोई नुकसान नहीं पहुंचाता है।
नोट: एक सकारात्मक पहचान का मतलब है कि सर्वर एक कमजोर संस्करण चला रहा है और RSC-विशिष्ट त्रुटि हस्ताक्षर लौटाया है। इसका मतलब यह नहीं है कि सर्वर का शोषण किया गया।
| Option | Description |
|---|---|
--list | लक्ष्य को URL वाली फ़ाइल के रूप में मानें |
--threads <n> | समवर्ती थ्रेड्स की संख्या (डिफ़ॉल्ट: 10) |
--timeout <ms> | मिलीसेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट: 10000) |
--json | परिणाम JSON के रूप में आउटपुट करें |
--skip-ssl-verify | SSL प्रमाणपत्र सत्यापन छोड़ें |
--verbose | गैर-कमजोर होस्ट सहित सभी परिणाम दिखाएं |
जांचें कि क्या लक्ष्य को कमजोरी के खिलाफ पैच किया गया है:```bash
react2shell-guard verify-patch https://example.com
react2shell-guard verify-patch https://example.com --json
### पैच सत्यापन कैसे काम करता है
पैच सत्यापन **एकाधिक लगातार स्कैन** (डिफ़ॉल्ट: 3) को उनके बीच संक्षिप्त देरी के साथ करता है ताकि सटीक पता लगाना सुनिश्चित हो सके:
1. **कई जांच**: समान निष्क्रिय फिंगरप्रिंटिंग जाँच को 500ms देरी के साथ 3 बार चलाता है
2. **आत्मविश्वास स्कोरिंग**:
- **उच्च आत्मविश्वास**: 2+ सफल स्कैन जिनके परिणाम सुसंगत हैं
- **मध्यम आत्मविश्वास**: एक सफल स्कैन जिसका निर्णायक परिणाम है
- **कम आत्मविश्वास**: सभी स्कैन विफल या अनिर्णायक परिणाम
3. **परिणाम वर्गीकरण**:
- **पैच किया हुआ**: सभी सफल स्कैन में कोई भेद्यता हस्ताक्षर का पता नहीं चला
- **असुरक्षित**: एक या अधिक स्कैन में भेद्यता हस्ताक्षर का पता चला
- **अनिर्णायक**: मिश्रित परिणाम या सभी स्कैन विफल
यह बहु-स्कैन दृष्टिकोण क्षणिक नेटवर्क समस्याओं से होने वाली गलत सकारात्मकताओं को कम करता है और पैच स्थिति में उच्च आत्मविश्वास प्रदान करता है।
### सत्यापन विकल्प
| विकल्प | विवरण |
|--------|-------------|
| `--timeout <ms>` | मिलीसेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट: 10000) |
| `--json` | आउटपुट को JSON के रूप में प्रस्तुत करें |
| `--skip-ssl-verify` | SSL प्रमाणपत्र सत्यापन छोड़ें |
## कंटेनर छवि स्कैनिंग
असुरक्षित पैकेजों के लिए Docker/OCI कंटेनर छवियों को स्कैन करें:```bash
# Scan a local or remote image
react2shell-guard scan-image myapp:latest
# Scan from a registry
react2shell-guard scan-image registry.example.com/myapp:v1.0
# Skip pulling (use local image only)
react2shell-guard scan-image myapp:latest --skip-pull
# With JSON output
react2shell-guard scan-image myapp:latest --json
# With SARIF output
react2shell-guard scan-image myapp:latest --sarif
| विकल्प | विवरण |
|---|---|
--timeout <ms> | ऑपरेशन टाइमआउट मिलीसेकंड में (डिफ़ॉल्ट: 120000) |
--skip-pull | रजिस्ट्री से इमेज खींचना छोड़ें (केवल स्थानीय का उपयोग करें) |
--json | परिणाम JSON के रूप में आउटपुट करें |
--sarif | परिणाम SARIF 2.1.0 के रूप में आउटपुट करें |
--no-exit-on-vuln | जब कमजोरियां मिलें तो कोड 1 के साथ बाहर न निकलें |
--debug | डीबग आउटपुट सक्षम करें |
आवश्यकताएँ:
उत्पादन तक पहुंचने से पहले कमजोर डिप्लॉयमेंट को ब्लॉक करें:```bash
react2shell-guard vercel-check
{ "scripts": { "vercel-build": "react2shell-guard vercel-check && next build" } }
{ "buildCommand": "npx react2shell-guard vercel-check && npm run build" }
### Vercel जाँच विकल्प
| विकल्प | विवरण |
|--------|-------------|
| `--no-fail` | चेतावनी दें लेकिन कमजोरियों पर बिल्ड को विफल न करें |
| `--ignore-path <patterns>` | अनदेखा करने के लिए पथ (ग्लोब पैटर्न) |
| `--debug` | डीबग आउटपुट सक्षम करें |
## GitHub PR स्वचालन
कमजोरियों को ठीक करने के लिए स्वचालित रूप से एक पुल अनुरोध बनाएं:```bash
# Preview what will be done
react2shell-guard create-pr --dry-run
# Create branch and PR
react2shell-guard create-pr
# Create branch but don't push/create PR
react2shell-guard create-pr --no-push
# Custom branch name
react2shell-guard create-pr --branch fix/security-update
| विकल्प | विवरण |
|---|---|
--branch <name> | फिक्स के लिए शाखा का नाम (डिफ़ॉल्ट: fix/cve-2025-55182) |
--dry-run | बिना बदलाव किए क्या किया जाएगा दिखाएं |
--no-push | शाखा और कमिट बनाएं लेकिन push या PR न बनाएं |
आवश्यकताएँ:
react2shell-guard - CVE-2025-55182 Scanner ──────────────────────────────────────────────────
Scanned 1 project(s)
✗ my-app [VULNERABLE] Path: /path/to/my-app Framework: nextjs v15.2.1 App Router: Yes (RSC enabled)
Vulnerabilities found: - react-server-dom-webpack @ 19.1.0 Upgrade to: 19.1.2 Advisory: https://react.dev/blog/2025/12/03/... - next @ 15.2.1 Upgrade to: 15.2.6 Advisory: https://react.dev/blog/2025/12/03/...
────────────────────────────────────────────────── VULNERABLE - Action required! Upgrade affected packages to patched versions immediately.
## GitHub Actions एकीकरण
> **नोट:** हम बेहतर डिटेक्शन पैटर्न और फिक्स के साथ नए संस्करण सक्रिय रूप से जारी करते हैं। स्थिर रिलीज़ के लिए `@v1` का उपयोग करें या नवीनतम संस्करण के लिए `@latest` का उपयोग करें।
### GitHub Marketplace Action
एकीकृत करने का सबसे आसान तरीका हमारे आधिकारिक GitHub Action का उपयोग करना है:```yaml
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for CVE-2025-55182
uses: gensecaihq/react2shell-scanner@v1
with:
path: '.'
fail-on-vuln: true
name: Security Scan
on: [push, pull_request]
jobs: scan: runs-on: ubuntu-latest permissions: security-events: write # For SARIF upload pull-requests: write # For PR comments
steps:
- uses: actions/checkout@v4
- name: Scan for CVE-2025-55182
uses: gensecaihq/react2shell-scanner@v1
with:
path: '.'
format: sarif
fail-on-vuln: true
upload-sarif: true # Upload to GitHub Security tab
add-pr-comment: true # Comment on PRs with results
ignore-paths: 'examples/**,test/fixtures/**'
### क्रिया इनपुट
| इनपुट | विवरण | डिफ़ॉल्ट |
|-------|-------------|---------|
| `path` | स्कैन करने का पथ | `.` |
| `scan-type` | स्कैन का प्रकार: `repo`, `sbom`, `container` | `repo` |
| `format` | आउटपुट प्रारूप: `text`, `json`, `sarif` | `text` |
| `fail-on-vuln` | यदि कमजोरियाँ मिलें तो असफल करें | `true` |
| `upload-sarif` | SARIF को GitHub Security पर अपलोड करें | `false` |
| `add-pr-comment` | परिणामों के साथ PR टिप्पणी जोड़ें | `false` |
| `ignore-paths` | अनदेखा करने के लिए अल्पविराम से अलग किए गए पथ | `''` |
| `sbom-file` | SBOM फ़ाइल पथ (जब scan-type sbom हो) | `''` |
| `container-image` | Docker इमेज (जब scan-type container हो) | `''` |
### क्रिया आउटपुट
| आउटपुट | विवरण |
|--------|-------------|
| `vulnerable` | क्या कमजोरियाँ पाई गईं (`true`/`false`) |
| `findings-count` | कमजोर पैकेजों की संख्या |
| `scan-result` | पूर्ण स्कैन परिणाम (JSON प्रारूप) |
| `sarif-file` | SARIF आउटपुट फ़ाइल का पथ |```yaml
- name: Scan Docker image
uses: gensecaihq/react2shell-scanner@v1
with:
scan-type: container
container-image: myapp:latest
### मैन्युअल CLI उपयोग
यदि आप सीधे CLI का उपयोग करना पसंद करते हैं:```yaml
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Scan for vulnerabilities
run: npx react2shell-guard@latest .
react2shell-guard स्वचालित रूप से निम्नलिखित से लॉकफ़ाइलों का पता लगाता और पार्स करता है:
package-lock.json (v2 और v3 फ़ॉर्मेट)pnpm-lock.yamlyarn.lock (क्लासिक और बेरी फ़ॉर्मेट)अपने package.json को पैच किए गए संस्करणों का उपयोग करने के लिए स्वचालित रूप से अपडेट करें:```bash
react2shell-guard fix --dry-run
react2shell-guard fix
react2shell-guard fix --install
## Pre-Commit Hooks
असुरक्षित निर्भरताओं को commit करने से रोकने के लिए git hooks स्थापित करें:```bash
# Auto-detect hook framework and install
react2shell-guard init-hooks
# Preview what would be installed
react2shell-guard init-hooks --dry-run
# Force specific hook type
react2shell-guard init-hooks --hook-type husky
react2shell-guard init-hooks --hook-type lefthook
react2shell-guard init-hooks --hook-type standalone
समर्थित हुक फ्रेमवर्क:
.husky/pre-commit में जोड़ता हैlefthook.yml बनाता/अपडेट करता है.git/hooks/pre-commit बनाता हैयह हुक तब कमिट को ब्लॉक करेगा जब package.json में कमजोर निर्भरताएँ हों और उपचार के लिए react2shell-guard fix चलाने का सुझाव देगा।
साइक्लोनडीएक्स SBOM फ़ाइलों में कमजोरियों की जाँच करें:```bash
react2shell-guard scan-sbom bom.json
react2shell-guard scan-sbom bom.json --json
react2shell-guard scan-sbom bom.json --sarif
## MCP Server (AI सहायक एकीकरण)
Model Context Protocol सर्वर को AI सहायक एकीकरण के लिए प्रारंभ करें:```bash
react2shell-guard mcp-server
उपलब्ध MCP उपकरण:
scan_repo - भेद्यताओं के लिए रिपॉजिटरी स्कैन करेंscan_sbom - CycloneDX SBOM फ़ाइल स्कैन करेंMCP-संगत क्लाइंट के साथ कॉन्फ़िगर करें (उदाहरण कॉन्फ़िगरेशन):```json { "mcpServers": { "react2shell-guard": { "command": "npx", "args": ["react2shell-guard", "mcp-server"] } } }
## रनटाइम सुरक्षा मिडलवेयर
गहराई से सुरक्षा मिडलवेयर जो रनटाइम पर CVE-2025-55182 शोषण प्रयासों का पता लगाता है और उन्हें अवरुद्ध करता है।
### Express.js```typescript
import express from 'express';
import { createExpressMiddleware } from 'react2shell-guard/middleware';
const app = express();
// Add raw body parser for RSC payloads
app.use(express.raw({ type: 'text/x-component' }));
app.use(express.json());
// Add protection middleware
app.use(createExpressMiddleware({
action: 'block', // 'block' | 'log' | 'alert'
onAlert: (result, req) => {
// Send to your alerting system (Slack, PagerDuty, etc.)
console.error('CVE-2025-55182 exploit attempt:', result);
},
skipPaths: ['/health', '/metrics'],
}));
// middleware.ts import { withReact2ShellGuard } from 'react2shell-guard/middleware';
export const middleware = withReact2ShellGuard({ action: 'block', rscEndpointsOnly: true, // Only check RSC endpoints (recommended) });
export const config = { matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'], };
**Detected patterns:**
- क्रमबद्ध फ़ंक्शन इंजेक्शन
- प्रोटोटाइप प्रदूषण के प्रयास
- विकृत मॉड्यूल संदर्भ
- सर्वर कार्रवाई में छेड़छाड़
- एन्कोडेड दुर्भावनापूर्ण पेलोड
- RSC स्ट्रीमिंग फ़ॉर्मेट का दुरुपयोग
## API उपयोग```typescript
import { scan } from 'react2shell-guard';
const result = scan({
path: '/path/to/project',
ignorePaths: ['examples/**'],
debug: false,
});
console.log(result.vulnerable); // boolean
console.log(result.projects); // ProjectResult[]
{ "cve": "CVE-2025-55182", "vulnerable": true, "scanTime": "2025-12-04T10:30:00Z", "projects": [ { "name": "my-app", "path": "/path/to/my-app", "framework": { "type": "nextjs", "version": "15.2.1", "appRouterDetected": true }, "findings": [ { "package": "react-server-dom-webpack", "currentVersion": "19.1.0", "fixedVersion": "19.1.2", "severity": "critical", "advisoryUrl": "https://..." } ], "vulnerable": true } ], "errors": [] }
## सुधार
**स्वचालित सुधार (अनुशंसित):**```bash
react2shell-guard fix --install
मैन्युअल अपग्रेड - React पैकेज:```bash npm install [email protected] # or 19.0.1, 19.2.1
**मैन्युअल अपग्रेड - Next.js:**```bash
npm install [email protected] # or other patched version for your release line
रिलीज़ लाइन के अनुसार तय किए गए Next.js संस्करण:
npm install
npm run build
npm test
npm run dev
## लाइसेंस
MIT