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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-41828 — [CVE-2022-41828] Amazon AWS Redshift JDBC ड्राइवर रिमोट कोड निष्पादन (RCE) | Kitploit
उपकरण/GitHubGitHub/murataydemir/cve-2022-41828
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणक्लाउड सुरक्षालर्निंग और शिक्षाडेटाबेस सुरक्षा
GitHubmurataydemir/cve-2022-41828

CVE-2022-41828

[CVE-2022-41828] Amazon AWS Redshift JDBC ड्राइवर रिमोट कोड निष्पादन (RCE)

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

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

सभी देखें →

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

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

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

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

[CVE-2022-41828] Amazon AWS Redshift JDBC Driver दूरस्थ कोड निष्पादन (RCE)


Platform Badge Ecosystem

Amazon Redshift के लिए JDBC Driver एक टाइप 4 JDBC ड्राइवर है जो जावा प्लेटफॉर्म, एंटरप्राइज़ एडिशन में उपलब्ध मानक JDBC एप्लीकेशन प्रोग्राम इंटरफेस (APIs) के माध्यम से डेटाबेस कनेक्टिविटी प्रदान करता है। यह ड्राइवर किसी भी जावा एप्लीकेशन, एप्लीकेशन सर्वर, या जावा-सक्षम एपलेट से Redshift तक पहुँच प्रदान करता है।

redshift-jdbc42 के संस्करण 2.1.0.7 और उससे नीचे में एक संभावित दूरस्थ कमांड निष्पादन समस्या मौजूद है। जब ड्राइवर के साथ प्लगइन का उपयोग किया जाता है, तो यह sslhostnameverifier, socketFactory, sslfactory, और sslpasswordcallback कनेक्शन गुणों के माध्यम से प्रदान किए गए जावा क्लास नामों के आधार पर प्लगइन इंस्टेंस को इंस्टैंशिएट करता है। प्रभावित संस्करणों में, ड्राइवर इंस्टैंशिएशन से पहले यह सत्यापित नहीं करता है कि कोई प्लगइन क्लास अपेक्षित इंटरफ़ेस को लागू करता है या नहीं। इससे मनमाने जावा क्लासेस को लोड किया जा सकता है, जिसका उपयोग एक जानकार हमलावर, जिसके पास JDBC URL पर नियंत्रण है, दूरस्थ कोड निष्पादन प्राप्त करने के लिए कर सकता है।

पैच

यह समस्या redshift-jdbc-42 संस्करण 2.1.0.8 और उससे ऊपर में पैच की गई है।

वर्कअराउंड

AWS प्लगइन का उपयोग करने वाले ग्राहकों को redshift-jdbc42 संस्करण 2.1.0.8 या उससे ऊपर अपग्रेड करने की सलाह देता है। इस समस्या के लिए कोई ज्ञात वर्कअराउंड नहीं हैं।

पैच विश्लेषण: GitHub समस्या और संबंधित कमिट

इस समस्या को ठीक करने के लिए, कमिट aws/amazon-redshift-jdbc-driver@9999659 में 4 अलग-अलग जावा क्लासेस में संशोधन किए गए हैं। ये क्लासेस क्रमशः निम्नलिखित हैं।

  • src/main/java/com/amazon/redshift/core/SocketFactoryFactory.java
@@ -38,7 +38,7 @@ public static SocketFactory getSocketFactory(Properties info) throws RedshiftExc
      return SocketFactory.getDefault();
    }
    try {
      //removed return (SocketFactory) ObjectFactory.instantiate(socketFactoryClassName, info, true, RedshiftProperty.SOCKET_FACTORY_ARG.get(info));
      return ObjectFactory.instantiate(SocketFactory.class, socketFactoryClassName, info, true, RedshiftProperty.SOCKET_FACTORY_ARG.get(info)); //added
    } catch (Exception e) {
      throw new RedshiftException(
@@ -66,7 +66,7 @@ public static SSLSocketFactory getSslSocketFactory(Properties info) throws Redsh
      if (classname.equals(RedshiftConnectionImpl.NON_VALIDATING_SSL_FACTORY))
      		classname = NonValidatingFactory.class.getName();

      //removed return (SSLSocketFactory) ObjectFactory.instantiate(classname, info, true, RedshiftProperty.SSL_FACTORY_ARG.get(info));
      return  ObjectFactory.instantiate(SSLSocketFactory.class, classname, info, true, RedshiftProperty.SSL_FACTORY_ARG.get(info)); //added
    } catch (Exception e) {
      throw new RedshiftException(

commit-1

  • src/main/java/com/amazon/redshift/ssl/LibPQFactory.java
@@ -61,7 +61,7 @@ private CallbackHandler getCallbackHandler(Properties info) throws RedshiftExcep
    String sslpasswordcallback = RedshiftProperty.SSL_PASSWORD_CALLBACK.get(info);
    if (sslpasswordcallback != null) {
      try {
        //removed cbh = (CallbackHandler) ObjectFactory.instantiate(sslpasswordcallback, info, false, null);
        cbh =  ObjectFactory.instantiate(CallbackHandler.class, sslpasswordcallback, info, false, null); //added
      } catch (Exception e) {
        throw new RedshiftException(
          GT.tr("The password callback class provided {0} could not be instantiated.",

commit-2

  • src/main/java/com/amazon/redshift/ssl/MakeSSL.java
@@ -59,7 +59,7 @@ private static void verifyPeerName(RedshiftStream stream, Properties info, SSLSo
      sslhostnameverifier = "RedshiftjdbcHostnameVerifier";
    } else {
      try {
        //removed hvn = (HostnameVerifier) instantiate(sslhostnameverifier, info, false, null);
        hvn = instantiate(HostnameVerifier.class, sslhostnameverifier, info, false, null); //added
      } catch (Exception e) {
        throw new RedshiftException(
            GT.tr("The HostnameVerifier class provided {0} could not be instantiated.",

commit-3

  • src/main/java/com/amazon/redshift/util/ObjectFactory.java
@@ -34,13 +34,13 @@ public class ObjectFactory {
   * @throws IllegalAccessException if something goes wrong
   * @throws InvocationTargetException if something goes wrong
   */
  //removed public static Object instantiate(String classname, Properties info, boolean tryString,
  public static <T> T instantiate(Class<T> expectedClass, String classname, Properties info, boolean tryString, //added
      String stringarg) throws ClassNotFoundException, SecurityException, NoSuchMethodException,
          IllegalArgumentException, InstantiationException, IllegalAccessException,
          InvocationTargetException {
    Object[] args = {info};
    Constructor<?> ctor = null; //removed
    Class<?> cls = Class.forName(classname); //removed
    Constructor<? extends T> ctor = null; //added
    Class<? extends T> cls = Class.forName(classname).asSubclass(expectedClass); //added    
    try {
      ctor = cls.getConstructor(Properties.class);
    } catch (NoSuchMethodException nsme) {

commit-4

पुनरुत्पादन: असुरक्षित एप्लीकेशन विकसित करना और शोषण के चरण

CVE-2022-41828 को पुनरुत्पादित करने के लिए, स्प्रिंग फ्रेमवर्क के साथ एक असुरक्षित जावा एप्लीकेशन विकसित किया गया है जो बाहरी लाइब्रेरी के रूप में एक असुरक्षित redshift-jdbc42 संस्करण 2.1.0.7 ड्राइवर का उपयोग करता है।

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