Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-55182 — React Server Components में CVE-2025-55182 प्रोटोटाइप प्रदूषण भेद्यता का CodeQL-आधारित विश्लेषण, शोषण POC और असुरक्षित संपत्ति ट्रैवर्सल के लिए स्थैतिक पहचान प्रश्नों के साथ। | Kitploit
उपकरण/GitHubGitHub/klassiker/cve-2025-55182
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणवेब सुरक्षापेपर और शोधलर्निंग और शिक्षा
GitHubklassiker/cve-2025-55182

CVE-2025-55182

React Server Components में CVE-2025-55182 प्रोटोटाइप प्रदूषण भेद्यता का CodeQL-आधारित विश्लेषण, शोषण POC और असुरक्षित संपत्ति ट्रैवर्सल के लिए स्थैतिक पहचान प्रश्नों के साथ।

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

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

सभी देखें →

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

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

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

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

CVE-2025-55182

संवेदनशील अनुप्रयोग

बिल्ड और चलाएं:

docker compose build
docker compose run --rm --entrypoint 'npm install' node
docker compose run --rm --entrypoint 'npm run build' node
docker compose up

POC (https://github.com/msanft/CVE-2025-55182 से):

node poc.js

अनबंडल के साथ प्रयोग:

yarn --immutable

node --conditions react-server app.js

CodeQL

facebook/react को क्लोन करें और अनबंडल बनाएं:

yarn --immutable

yarn cross-env RELEASE_CHANNEL=experimental node ./scripts/rollup/build.js react-server-dom-webpack/ --type=NODE_DEV

cp ./build/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js \
    codeql/${version}/

CodeQL तैयार करें:

codeql database create db -l javascript -s codeql

cd queries && codeql pack install

codeql query run ./queries/PrototypeTraversal.ql -d db

TODO

  • Promise.resolve(userData) खोजने के लिए एक क्वेरी जोड़ें
    • उपयोगकर्ता-परिभाषित ऑब्जेक्ट के साथ रिज़ॉल्व करने वाले सभी async फ़ंक्शन खोजने चाहिए
    • यह कोड निष्पादन समस्याओं का तत्काल स्थान है
  • await non-native-promise खोजने के लिए एक क्वेरी जोड़ें
    • उन फ़ंक्शनों के सभी await खोजने चाहिए जो नेटिव प्रॉमिस वापस नहीं करते
    • एक कॉलर गलती से await का उपयोग किसी विधि पर कर सकता है जो (कभी-कभी) कच्चा डेटा लौटाता है

परिणाम

इसने getOutlinedModel में पैच किए गए उपयोग को पकड़ा (hasOwnProperty.call जोड़ा गया) और createModelResolver में हटाए गए उपयोग को (अब fulfillReference).

filenamesourcesink
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'parentObject' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'parentObject' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsvalue[path[i]]value[path[i]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'value' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./tests.jsvalue[path[i]]cअसुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'value' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./tests.jsvalue[path[i]]cअसुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'value' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./tests.jsvalue[path[i]]value[path[i]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'value' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./vuln.jsparentObject[reference[key]]parentObject[reference[key]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'parentObject' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।
./vuln.jsvalue[path[i]]value[path[i]]असुरक्षित प्रोटोटाइप ट्रैवर्सल: चर 'value' को लूप के अंदर अपनी ही प्रॉपर्टी के साथ अपडेट किया गया है।

मुझे नहीं पता कि पहला और दूसरा एक ही स्थान की ओर क्यों इंगित करते हैं, जबकि vuln.js में निकाला गया ऐसा नहीं करता।

उदाहरण

codeql/tests.js में ये तीन प्रकार हैं:

var value = {};
for (let i = 0; i < path.length; i++) {
  value = value[path[i]] // VarAccess
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c = value[path[i]] // VarDecl
  value = c
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c
  c = value[path[i]] // use VarRef
  value = c
}

संदर्भ: https://codeql.github.com/docs/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs/

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