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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
spark-connect-copy-local — Apache Spark 4.2.0 - उच्च - रिमोट - फ़ाइल लेखन - Connect सत्र SET copyFromLocalToFs.allowDestLocal | Kitploit
उपकरण/GitHubGitHub/abraxas/spark-connect-copy-local
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणकॉन्फ़िगरेशन ऑडिटिंगसुरक्षा वर्चुअलाइजेशनपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षारेड टीमिंग
GitHubabraxas/spark-connect-copy-local

spark-connect-copy-local

Apache Spark 4.2.0 - उच्च - रिमोट - फ़ाइल लेखन - Connect सत्र SET copyFromLocalToFs.allowDestLocal

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - spark-connect-copy-local

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  spark-connect-copy-local

spark-connect-copy-local

वर्ग: फ़ाइल लेखन (SPARK-58531 का अवशेष; केवल 4.3.0 पर स्थिर) पहुँच: रिमोट

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

spark.sql.artifact.copyFromLocalToFs.allowDestLocal इस पिन पर अभी भी buildConf (सत्र-सेट करने योग्य) है। SPARK-58531 ने इसे 4.3.0 में StaticSQLConf में स्थानांतरित कर दिया। एक Connect सत्र केवल-परीक्षण वाले local-dest गेट को SET कर सकता है, फिर copyFromLocalToFs / AddArtifacts forward_to_fs/<abs> Spark UID के रूप में ड्राइवर-स्थानीय पथ को अधिलेखित कर देता है।

Connect सत्र SET फिर forward_to_fs ड्राइवर-स्थानीय फ़ाइलें लिखता है। गंतव्य LocalFileSystem होना चाहिए। RCE नहीं।

IDअभी तक कोई CVE नहीं (SPARK-58531 का अवशेष)
वर्गफ़ाइल लेखन (SPARK-58531 का अवशेष; केवल 4.3.0 पर स्थिर)
पहुँचरिमोट (Spark Connect Config + AddArtifacts)
CWECWE-22, CWE-732
CVSSउच्च: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
उत्पादApache Spark (ASF)
प्रभावितApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)। 4.3.0 स्थिर है।
प्रमाणीकरणConnect क्लाइंट जो ConfigRequest.SET और AddArtifacts कर सकता है। डिफ़ॉल्ट Connect में कोई PSK नहीं।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1:18920

हमलावर क्या कर सकता है

एक Spark Connect क्लाइंट जो gRPC तक पहुँच सकता है (डिफ़ॉल्ट बाइंड पोर्ट 15002, कोई PSK नहीं जब तक ऑपरेटर ने spark.connect.authenticate.token सेट न किया हो) ड्राइवर को शुरू करते समय सेट किए गए केवल-परीक्षण वाले गेट को बंद कर सकता है, फिर Spark UID के रूप में ड्राइवर पर चुने गए स्थानीय पथ को अधिलेखित कर सकता है।

विधिसिंकविशेषाधिकार
gRPC Config SET spark.sql.artifact.copyFromLocalToFs.allowDestLocal=true (या SQL SET)SparkConnectConfigHandler.handleSet -> RuntimeConfig.set -> SQLConf.setConfStringअखंडता (सत्र कॉन्फ़, लैब-प्रमाणित): प्रति-सत्र local-dest गेट को बदल देता है। स्वयं कोई फ़ाइल नहीं लिखता। अन्य सत्रों को नहीं बदलता। लैब: SET HTTP 200, modifiable=True।
gRPC AddArtifacts नाम forward_to_fs + पूर्ण गंतव्य, CRC ठीकArtifactManager.uploadArtifactToFs -> LocalFileSystem.copyFromLocalFile(delSrc=false, overwrite=true)अखंडता (फ़ाइल अधिलेखन, लैब-प्रमाणित): artifactRootDirectory/<sessionUUID>/ के बाहर Spark UID के रूप में ड्राइवर-स्थानीय पथ लिखें/अधिलेखित करें। लैब: गंतव्य /oracle/SPARK-CONNECT-COPY-LOCAL-WITNESS, uid 185, सामग्री WITNESS।
वही AddArtifacts HDFS/S3/ABFS गंतव्य परप्रलेखित copyFromLocalToFsअखंडता (क्लस्टर FS, डिज़ाइन द्वारा): यह अवशेष नहीं। जो गंतव्य LocalFileSystem नहीं है वह कभी परीक्षण फ़्लैग की जाँच नहीं करता।

लैब-प्रमाणित बनाम अनुमानित: buildConf कुंजी का सत्र SET, फिर uid 185 के रूप में आर्टिफ़ैक्ट सैंडबॉक्स के बाहर LocalFileSystem गंतव्य लेखन, लैब है। उस पथ का Spark UID अधिलेखन जिसे प्रक्रिया लिख सकती है (ड्राइवर कार्य निर्देशिका, विश्व-लेखन योग्य ड्रॉप, पहले से निष्पादन योग्य स्क्रिप्ट जिसे ऑपरेटर बाद में चलाता है) अनुमानित है। कोई RIP नियंत्रण नहीं। फ़ाइल लेखन को RCE तक न बढ़ाएँ।

आवश्यक: Spark Connect सुन रहा हो। क्लाइंट जो सत्र SQL कॉन्फ़ SET और AddArtifacts कर सके। गंतव्य Hadoop LocalFileSystem होना चाहिए। डिफ़ॉल्ट Connect में कोई PSK नहीं; यदि ऑपरेटर ने टोकन सेट किया है, तो अवशेष को अभी भी वह साझा Bearer चाहिए। यह local-dest नियंत्रण का बायपास है, PSK बायपास नहीं।

निकटवर्ती सतह जो बंद रहती है

सतहलैब
SET के बिना कॉपी400 _LEGACY_ERROR_TEMP_3161, गंतव्य अनुपस्थित
पुरानी स्थिर spark.connect.copyFromLocalToFs.allowDestLocal SET करें400 CANNOT_MODIFY_STATIC_CONFIG
आर्टिफ़ैक्ट नाम .. / पूर्ण स्टेजिंग (ArtifactUtils.concatenatePaths)INVALID_ARTIFACT_PATH
गैर-forward_to_fs आर्टिफ़ैक्टartifactRootDirectory/<sessionUUID>/ के अंतर्गत रहते हैं
फ़्लैग के बिना HDFS/क्लाउड गंतव्यप्रलेखित API, यह अवशेष नहीं
खुले Connect पर अनधिकृत SQL / Python UDF / Scala UdfPacketविक्रेता FAQ जॉब सबमिट; DROP
SPARK-52122 ML DefaultParamsReaderइस पिन पर allowlist + safeMLClassLoader

कोई शेल नहीं। कोई हीप डंप नहीं। कोई Connect PSK स्किप नहीं। गंतव्य अभी भी LocalFileSystem होना चाहिए। लेखन Spark UID के रूप में है, root के रूप में नहीं।

मैंने इसे कैसे खोजा

uploadArtifactToFs LocalFileSystem गंतव्य को अस्वीकार करता है जब तक परीक्षण फ़्लैग चालू न हो, इस स्पष्ट टिप्पणी के साथ कि अन्यथा उपयोगकर्ता ड्राइवर पर मनमानी फ़ाइल अधिलेखित कर देता है:

if (fs.isInstanceOf[LocalFileSystem]) {
  val allowDestLocalConf =
    session.sessionState.conf.getConf(SQLConf.ARTIFACT_COPY_FROM_LOCAL_TO_FS_ALLOW_DEST_LOCAL)
      .getOrElse(
        session.conf.get("spark.connect.copyFromLocalToFs.allowDestLocal").contains("true"))
  if (!allowDestLocalConf) {
    throw new SparkUnsupportedOperationException("_LEGACY_ERROR_TEMP_3161")
  }
}
fs.copyFromLocalFile(false, true, new FSPath(localPath.toString), destFSPath)

3.5 कुंजी स्थिर है, डिफ़ॉल्ट false। 4.0 प्रतिस्थापन buildConf वैकल्पिक है:

val ARTIFACT_COPY_FROM_LOCAL_TO_FS_ALLOW_DEST_LOCAL =
  buildConf("spark.sql.artifact.copyFromLocalToFs.allowDestLocal")
    .internal()
    ...
    .booleanConf
    .createOptional

buildConf registerStaticConfigKey को कॉल नहीं करता। isModifiable containsConfigKey && !isStaticConfigKey है। RuntimeConfig.set केवल स्थिर कुंजियों को अस्वीकार करता है। Internal अभी भी सेट करने योग्य है। SET के बाद, getConf(ARTIFACT_...) Some(true) लौटाता है और स्थिर पुराने कॉन्फ़ पर getOrElse फ़ॉलबैक छोड़ दिया जाता है।

SPARK-58531 / PR 57730 "Convert spark.sql.artifact.copyFromLocalToFs.allowDestLocal to a static conf" 2026-08-05 को हल किया गया, Fix Version 4.3.0। JIRA: कॉन्फ़ "नियंत्रित करता है कि कॉलर ड्राइवर के स्थानीय फ़ाइलसिस्टम पर मनमाने पथ पर लिख सकता है या नहीं, इसलिए इसे ड्राइवर शुरू करने वाले द्वारा सेट किया जाना चाहिए।" 4.2.0 को Affects में सूचीबद्ध किया गया है। इस पिन में अभी भी रनटाइम कॉन्फ़ है।

पहले से दर्ज गलत मोड़: Connect SQL को निष्कर्ष मानना (FAQ); पुरानी स्थिर कुंजी का SET (CANNOT_MODIFY_STATIC_CONFIG); यह दावा करना कि Unix पूर्ण गंतव्य पैरेंट को अनदेखा करता है (यह root के अंतर्गत जुड़ता है); फ़ाइल लेखन को RCE तक बढ़ाना; JIRA हल होने के कारण 4.3.0 RC को पिन करना।

लैब

cd lab
./run.sh

लूपबैक 127.0.0.1:18920। सत्र-कॉन्फ़ गेट और LocalFileSystem गंतव्य कॉपी का गैजेट (पिन v4.2.0 32f72996)। सर्वर UID 185। नियंत्रण no-SET: 400 _LEGACY_ERROR_TEMP_3161, गंतव्य अनुपस्थित। पुरानी स्थिर कुंजी का नियंत्रण SET: CANNOT_MODIFY_STATIC_CONFIG। buildConf कुंजी का सत्र SET फिर कॉपी: गंतव्य /oracle/SPARK-CONNECT-COPY-LOCAL-WITNESS /opt/spark/work/artifacts/<sessionUUID>/ के बाहर, uid 185, सामग्री WITNESS।

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