Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
spark-proxyuser-classpath — Apache Spark 4.2.0 - عالي - عن بُعد - بقايا صلاحيات - proxy-user defaultExtraClassPath | Kitploit
أدوات/GitHubGitHub/abraxas/spark-proxyuser-classpath
تصعيد الامتيازاتأمن الحاوياتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقأمن السحابةالأوراق والأبحاثالفريق الأحمر
GitHubabraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

Apache Spark 4.2.0 - عالي - عن بُعد - بقايا صلاحيات - proxy-user defaultExtraClassPath

عرض المستودع
منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - spark-proxyuser-classpath

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  spark-proxyuser-classpath

spark-proxyuser-classpath

الفئة: صلاحية متبقية (متبقية من CVE-2023-22946 / SPARK-41958) الوصول: عن بُعد

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

لا يزال CVE-2023-22946 / SPARK-41958 يضبط spark.submit.proxyUser.allowCustomClasspathInClusterMode على false افتراضيًا، ولا يزال يشغّل childClasspath.clear() عند الإرسال في وضع العنقود مع --proxy-user. هذا هو مسار YARN --jars العام. ثم أضاف Spark 4.0 المفتاح spark.driver.defaultExtraClassPath. يقوم المشغّل دائمًا بإضافة هذا المفتاح في مقدمة -cp الخاص بـ JVM في spark-submit، بما في ذلك وضع العنقود. لا يرى SPARK-41958 ذلك أبدًا.

لا يزال بإمكان مستأجر بنمط Livy تحميل jar مُجهَّز داخل JVM الخاص بـ spark-submit في البوابة. لا يغيّر Hadoop UserGroupInformation.doAs ذلك الـ Unix UID.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (متبقية من CVE-2023-22946 / SPARK-41958)
الوصولعن بُعد (إرسال مهمة بنمط Livy عبر --proxy-user من البوابة)
CWECWE-269، CWE-427
CVSSمرتفع: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
المنتجApache Spark
المتأثرApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
المصادقةمستأجر مُصادَق عليه في بوابة بنمط Livy / Kyuubi / Oozie تمرّر --conf و --jars المُجهَّزة إلى spark-submit --proxy-user ... --deploy-mode cluster
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18950 فقط. ملف الشاهد. أداة المشغّل / الإرسال المذكورة.

ما يمكن للمهاجم فعله

امتلاك حساب مستأجر على بوابة Spark متعددة المستأجرين (Livy، Kyuubi، Oozie، وما شابهها) تشغّل spark-submit --proxy-user <tenant> --deploy-mode cluster بمعرّف مستخدم superuser. جهّز jar يمكن لـ JVM الخاص بالبوابة فتحه. أرسل --conf spark.driver.defaultExtraClassPath=<staged jar>. يمكن أن تبقى بوابة SPARK-41958 على false. لا يزال spark-submit -cp المُنشأ يبدأ بذلك الـ jar. تُحمَّل الفئات داخله بمعرّف Unix UID الخاص بالبوابة.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true هو مسار ثانٍ: .internal() للتوثيق فقط، ولا يزال --conf يكتب المفتاح، ثم يحتفظ عنقود YARN بـ --jars على childClasspath. يبقى CVE-2023-22946 العام هو مسار YARN الافتراضي --jars الذي يغطيه clear() بالفعل. هذه المتبقية هي defaultExtraClassPath غير المُقيَّد.

انتحال Hadoop بعد إرسال نظيف لا يزال هو المستخدم الوكيل لـ YARN AM / مشغّل k8s. هذه المتبقية هي JVM الخاص بالبوابة فقط.

الطريقةالمصبالاستطلاعالسلامةالتوافرالمصدر
إرسال بنمط Livy --proxy-user + عنقود yarn/k8s/standalone + --conf spark.driver.defaultExtraClassPath=<staged local jar>، مع ترك علم SPARK-41958 على falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 أول مدخل في -cpسرد/قراءة الملفات التي يمكن لـ UID الخاص بالبوابة قراءتها (مجلد keytab، spark-defaults، التجهيز المحلي). هوية Hadoop لـ RPCs اللاحقة لا تزال المستخدم الوكيل.تحميل فئات المستأجر داخل JVM الخاص بـ spark-submit. يبقى Unix UID هو البوابة (superuser الوكيل في Hadoop). المختبر: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain كتب SPARK-PROXYUSER-CLASSPATH-WITNESS. مُستنتَج من فئة CVE العامة: تراكب موارد Hadoop Configuration / البحث عن تنفيذ FileSystem بذلك الـ UID.انهيار JVM الإرسال إذا رمى التراكب استثناءً. ليس الفئة.تحميل مُثبَت مختبريًا + كتابة شاهد كـ -cp المُنشأ. تراكب Hadoop مُستنتَج. تمرير --conf في Livy/Kyuubi مُستنتَج (تلك الشجرات ليست هذا التثبيت).
نفس الإرسال مع --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true بالإضافة إلى --jars / المورد الأساسيSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924 ثم runMain :980-987نفس الاستطلاع كما في المسار A، على URLClassLoader الفرعي بدلًا من محمّل النظام.الاحتفاظ بـ --jars على childClasspath حتى يعمل addJarToClasspath. المختبر: conf-flag-keeps-jars=yes.نفسه.الاحتفاظ بـ childClasspath مُثبَت مختبريًا. ليس إعادة تسجيل لمسار YARN --jars العام الذي يغطيه clear() عندما يبقى العلم على false.

مُثبَت مختبريًا مقابل مُستنتَج: يحتوي -cp المُنشأ على defaultExtraClassPath في وضع العنقود؛ لا يزال childClasspath.clear() يعمل على العلم الافتراضي؛ يُحذف spark.driver.extraClassPath في وضع العنقود؛ يُمسح --jars مع العلم على false؛ فئة شاهد على ذلك -cp تكتب الأوراكل. تنفيذ فئة إعداد Hadoop هو آلية CVE-2023-22946 العامة، ولم يُعَد تشغيله هنا. تمرير Livy/Kyuubi لـ --conf هو البنية التي توثّقها تلك المشاريع.

مسارات مجاورة مغلقة (لا تبالغ)

الطريقةالمصبتبقى مغلقة
--driver-class-path / spark.driver.extraClassPath في وضع العنقودSparkSubmitCommandBuilder.java:318-319لا يُضاف إلى -cp الخاص بـ spark-submit. المختبر: extraClassPath-omitted=yes. يذهب إلى مشغّل العنقود، الذي يبدأه YARN/K8s كمستخدم وكيل.
العنقود الافتراضي + --proxy-user + --jars دون قلب العلم ودون defaultExtraClassPathSparkSubmit.scala:917-918 childClasspath.clear()يُفرَّغ child classpath في عنقود YARN/standalone/k8s. المختبر: childClasspath-cleared=yes في مسار التحكم. يبقى CVE-2023-22946 العام هو هذا المسار.
مشغّل وضع العميل --proxy-user على البوابةقسم Proxy User في docs/security.mdموثّق: JVM مشغّل وضع العميل هو superuser. يقول المورّد إنه ليس CVE. يُطلب من Livy/Kyuubi فرض وضع العنقود.
حاوية مشغّل وضع عنقود K8s (spark.kubernetes.submitInDriver=true) التي تضيف . إلى classpathSparkSubmit.scala:420-431 SPARK-43540spark-submit ثانٍ داخل pod المشغّل، وليس مضيف Livy. UID الخاص بالـ pod هو مستخدم الحاوية.
spark.driver.extraJavaOptions في وضع العنقودSparkSubmitCommandBuilder.java:341-357لا يُطبَّق على JVM الخاص بـ spark-submit. SPARK_SUBMIT_OPTS هو بيئة البوابة، وليس --conf الخاص بالمستأجر.
YARN AM / مشغّل k8s للتطبيق المُرسَلانتحال Hadoop بعد إرسال نظيفلا يزال المستخدم الوكيل لإطلاق العنقود. هذه المتبقية هي JVM الخاص بالبوابة فقط.
إرسال مهمة بدون مصادقة / Connect SQL / تحميل نموذج MLSECURITY.md FAQ / docs/ml-security.mdحسب التصميم. ليست هذه المتبقية.

كيف وجدته

تنزيل الأداة