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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-42779 — प्रूफ-ऑफ-कॉन्सेप्ट जो Apache MINA में डिसीरियलाइज़ेशन फ़िल्टर बायपास को प्रदर्शित करता है, जिससे रिमोट कोड एक्ज़ीक्यूशन होता है, साथ ही विस्तृत रूट कॉज़ विश्लेषण, एक्सप्लॉइट PoCs, और उपचार मार्गदर्शन शामिल है। | Kitploit
उपकरण/GitHubGitHub/dinosn/cve-2026-42779
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेपर और शोधलर्निंग और शिक्षा
GitHubdinosn/cve-2026-42779

CVE-2026-42779

प्रूफ-ऑफ-कॉन्सेप्ट जो Apache MINA में डिसीरियलाइज़ेशन फ़िल्टर बायपास को प्रदर्शित करता है, जिससे रिमोट कोड एक्ज़ीक्यूशन होता है, साथ ही विस्तृत रूट कॉज़ विश्लेषण, एक्सप्लॉइट PoCs, और उपचार मार्गदर्शन शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-42779 — Apache MINA डिसीरियलाइज़ेशन फ़िल्टर बायपास से RCE

CVSS 3.1: 9.8 CRITICAL AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CWE: CWE-502 अविश्वसनीय डेटा का डिसीरियलाइज़ेशन रिपोर्टर: वेंकटरामन कुमार, Securin एडवाइज़री: Apache मेलिंग लिस्ट

अवलोकन

Apache MINA संस्करण 2.1.0 से 2.1.11 और 2.2.0 से 2.2.6 में AbstractIoBuffer.resolveClass() में डिसीरियलाइज़ेशन फ़िल्टर बायपास मौजूद है। acceptMatchers अनुमति-सूची — जो यह प्रतिबंधित करने के लिए है कि कौन सी Java क्लासेज़ डिसीरियलाइज़ की जा सकती हैं — पूरी तरह से छोड़ दी जाती है जब ObjectStreamClass.forClass() null लौटाता है।

ObjectSerializationCodecFactory का उपयोग करने वाले MINA एंडपॉइंट तक नेटवर्क पहुंच रखने वाला हमलावर एक प्रोटोकॉल पेलोड तैयार कर सकता है जो क्लास फ़िल्टर को बायपास करता है, जिससे मानक Java डिसीरियलाइज़ेशन गैजेट चेन (जैसे, Commons Collections) के माध्यम से पूर्ण रिमोट कोड एक्ज़ीक्यूशन संभव हो जाता है।

यह CVE-2026-41635 का अधूरा फिक्स है। मूल पैच 2.0.x ब्रांच पर लागू किया गया था, लेकिन मर्ज की निगरानी के कारण इसे 2.1.x या 2.2.x पर कभी बैकपोर्ट नहीं किया गया।

प्रभावित संस्करण

ब्रांचअसुरक्षितफिक्स्ड
2.1.x2.1.0 – 2.1.112.1.12
2.2.x2.2.0 – 2.2.62.2.7

मूल कारण

यह कमज़ोरी AbstractIoBuffer.resolveClass() में है, जो Java ऑब्जेक्ट डिसीरियलाइज़ेशन के दौरान क्लास रिज़ॉल्यूशन को संभालता है।

MINA दो क्लास डिस्क्रिप्टर प्रकारों के साथ एक कस्टम सीरियलाइज़ेशन प्रोटोकॉल का उपयोग करता है:

  • टाइप 0 — गैर-Serializable क्लासेज़, प्रिमिटिव्स, और ऐरे (मानक Java क्लास डिस्क्रिप्टर प्रारूप)
  • टाइप 1 — Serializable क्लासेज़ (कॉम्पैक्ट क्लास नाम प्रारूप)

कमज़ोर कोड में, acceptMatchers फ़िल्टर केवल टाइप-1 ब्रांच में जांचा जाता है (जब forClass() गैर-null लौटाता है)। टाइप-0 ब्रांच सीधे Class.forName() को कॉल करता है, जिससे फ़िल्टर पूरी तरह से बायपास हो जाता है:

// AbstractIoBuffer.java — कमज़ोर (2.2.6)
protected Class<?> resolveClass(ObjectStreamClass desc) {
    Class<?> clazz = desc.forClass();

    if (clazz == null) {
        // BUG: कोई acceptMatchers जांच नहीं — फ़िल्टर पूरी तरह से बायपास
        return Class.forName(name, false, classLoader);
    } else {
        // फ़िल्टर केवल यहाँ लागू होता है
        for (ClassNameMatcher matcher : acceptMatchers) { ... }
    }
}

2.2.7 में फिक्स फ़िल्टर जांच को ब्रांच से पहले स्थानांतरित करता है:

// AbstractIoBuffer.java — फिक्स्ड (2.2.7)
protected Class<?> resolveClass(ObjectStreamClass desc) {
    String className = desc.getName();

    // फ़िल्टर पहले लागू होता है, forClass() परिणाम की परवाह किए बिना
    if (!acceptMatchers.stream().anyMatch(m -> m.matches(className))) {
        throw new ClassNotFoundException("Class not in accept list " + className);
    }

    Class<?> clazz = desc.forClass();
    // ... सुरक्षित रिज़ॉल्यूशन आगे बढ़ता है
}

शोषण

हमले का प्रवाह

हमलावर                                    असुरक्षित MINA सर्वर
   |                                              |
   |  1. गैजेट चेन क्लासेज़ के लिए टाइप-0           |
   |     डिस्क्रिप्टर के साथ MINA पेलोड तैयार करें      |
   |                                              |
   |  2. ObjectSerializationCodecFactory का उपयोग करने वाले |
   |     एंडपॉइंट पर भेजें ------------------------>|
   |                                              |
   |          3. readClassDescriptor() टाइप-0 पढ़ता है|
   |             → सुपर (std Java) को डेलीगेट करता है   |
   |                                              |
   |          4. resolveClass() forClass()==null देखता है
   |             → फ़िल्टर के बिना Class.forName()      |
   |                                              |
   |          5. गैजेट चेन पूरी तरह से डिसीरियलाइज़ होती है
   |             → readObject() चेन ट्रिगर करता है     |
   |             → Runtime.exec() फायर होता है        |
   |                                              |
   |                               RCE प्राप्त हुआ   |

पूर्व शर्तें

  1. लक्षित एप्लिकेशन IoBuffer.getObject() या ObjectSerializationCodecFactory का उपयोग करता है
  2. लक्ष्य पर accept() कॉन्फ़िगर किया गया है (बिना फ़िल्टर वाले एप्लिकेशन पहले से ही CVE-2026-41635 के माध्यम से शोषण योग्य थे)
  3. क्लासपाथ पर एक गैजेट चेन लाइब्रेरी (Commons Collections, Spring, आदि) मौजूद है

मुख्य अंतर्दृष्टि

हमलावर सीरियलाइज़्ड बाइट स्ट्रीम को नियंत्रित करता है। Serializable गैजेट चेन क्लासेज़ के लिए टाइप-1 के बजाय टाइप-0 क्लास डिस्क्रिप्टर का उपयोग करके, डिसीरियलाइज़ेशन ग्राफ़ में हर क्लास acceptMatchers फ़िल्टर को बायपास करती है, चाहे एप्लिकेशन की अनुमति-सूची कॉन्फ़िगरेशन कुछ भी हो।

प्रूफ़ ऑफ़ कॉन्सेप्ट

तीन PoCs बढ़ते प्रभाव का प्रदर्शन करते हैं:

PoCयह क्या साबित करता है
FilterBypassPoC.javaप्रिमिटिव्स, गैर-Serializable क्लासेज़, ऐरे के लिए फ़िल्टर बायपास
CraftedBypassPoC.javaहमलावर-निर्मित टाइप-0 पेलोड किसी भी Serializable क्लास के लिए फ़िल्टर बायपास करते हैं
RcePoC.javaफ़िल्टर बायपास के माध्यम से CC6 गैजेट चेन के ज़रिए पूर्ण RCE

1. फ़िल्टर बायपास (MINA 2.2.6 — असुरक्षित)

स्वीकृति सूची में नहीं होने वाली क्लासेज़ बिना किसी प्रतिबंध के डिसीरियलाइज़ होती हैं:

असुरक्षित MINA 2.2.6 पर फ़िल्टर बायपास

2. निर्मित पेलोड — मनमाना क्लास लोडिंग

हमलावर केवल-String स्वीकृति सूची से आगे किसी भी क्लास को लोड करने के लिए टाइप-0 डिस्क्रिप्टर के साथ MINA प्रोटोकॉल पेलोड तैयार करता है:

निर्मित पेलोड बायपास

3. पूर्ण RCE — कमांड एक्ज़ीक्यूशन

CC6-वेरिएंट गैजेट चेन (HashSet → TiedMapEntry → LazyMap → ChainedTransformer → Runtime.exec()) फ़िल्टर बायपास के माध्यम से कमांड एक्ज़ीक्यूशन प्राप्त करती है:

MINA 2.2.6 पर RCE की पुष्टि

4. फ़िल्टर बायपास (MINA 2.2.7 — पैच्ड)

समान परीक्षण फिक्स्ड संस्करण पर अवरुद्ध होते हैं:

MINA 2.2.7 पर फ़िल्टर बायपास अवरुद्ध

5. RCE अवरुद्ध (MINA 2.2.7 — पैच्ड)

गैजेट चेन फ़िल्टर द्वारा अस्वीकार कर दी जाती है:

MINA 2.2.7 पर RCE अवरुद्ध

त्वरित प्रारंभ (Docker)

परीक्षण का सबसे तेज़ तरीका — JDK या Maven की आवश्यकता नहीं:

# इस रेपो को क्लोन करें
git clone https://github.com/dinosn/CVE-2026-42779.git
cd CVE-2026-42779

# सभी PoCs बनाएं और चलाएं
docker build -t cve-2026-42779 .
docker run --rm cve-2026-42779

# व्यक्तिगत PoCs चलाएं
docker run --rm cve-2026-42779 bypass     # केवल फ़िल्टर बायपास
docker run --rm cve-2026-42779 crafted    # निर्मित पेलोड बायपास
docker run --rm cve-2026-42779 rce        # पूर्ण RCE

# अन्वेषण के लिए शेल में प्रवेश करें
docker run --rm -it cve-2026-42779 shell

इमेज में असुरक्षित MINA 2.2.6 JAR, Commons Collections 3.2.2, और सभी तीन पूर्व-संकलित PoCs शामिल हैं। सब कुछ कंटेनर के अंदर स्व-निहित रूप से चलता है।

पुनरुत्पादन (स्रोत से)

यदि आप स्रोत से निर्माण करना पसंद करते हैं:

# असुरक्षित संस्करण को क्लोन और बिल्ड करें
git clone https://github.com/apache/mina.git /tmp/apache-mina
cd /tmp/apache-mina
git checkout 2.2.6
mvn install -pl mina-core -DskipTests -q
टूल डाउनलोड करें