Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
spark-proxyuser-classpath — Apache Spark 4.2.0 - Hoch - Remote - Privilegien-Rest - proxy-user defaultExtraClassPath | Kitploit
Tools/GitHubGitHub/abraxas/spark-proxyuser-classpath
Privilege EscalationContainer-SicherheitSchwachstellenanalyseExploitationPenetrationstestsCloud-SicherheitPapers & ForschungRed Teaming
GitHubabraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

Apache Spark 4.2.0 - Hoch - Remote - Privilegien-Rest - proxy-user defaultExtraClassPath

Repository anzeigen
13vor 7 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - spark-proxyuser-classpath

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

Write-up: https://abraxaslabs.tech/research/spark-proxyuser-classpath

spark-proxyuser-classpath

Klasse: Privilegien-Überbleibsel (Überbleibsel von CVE-2023-22946 / SPARK-41958) Reichweite: Remote

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

CVE-2023-22946 / SPARK-41958 setzt spark.submit.proxyUser.allowCustomClasspathInClusterMode weiterhin standardmäßig auf false und führt bei --proxy-user-Cluster-Submits weiterhin childClasspath.clear() aus. Das ist der öffentliche YARN---jars-Pfad. Spark 4.0 fügte dann spark.driver.defaultExtraClassPath hinzu. Der Launcher stellt diesen Schlüssel immer dem -cp der spark-submit-JVM voran, auch im Cluster-Modus. SPARK-41958 bekommt ihn nie zu sehen.

Ein Tenant im Livy-Stil kann weiterhin ein bereitgestelltes Jar innerhalb der spark-submit-JVM des Gateways laden. Hadoops UserGroupInformation.doAs ändert diese Unix-UID nicht.

IDnoch keine CVE
KlassePrivilegien-Überbleibsel (Überbleibsel von CVE-2023-22946 / SPARK-41958)
ReichweiteRemote (Livy-artiger --proxy-user-Job-Submit über das Gateway)
CWECWE-269, CWE-427
CVSSHoch: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduktApache Spark
BetroffenApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
Authauthentifizierter Tenant eines Gateways im Livy-/Kyuubi-/Oozie-Stil, das --conf und bereitgestellte --jars an spark-submit --proxy-user ... --deploy-mode cluster weiterreicht
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18950. Witness-Datei. Gadget der zitierten Launcher-/Submit-Durchläufe.

Was ein Angreifer tun kann

Ein Tenant-Konto auf einem mandantenfähigen Spark-Gateway (Livy, Kyuubi, Oozie und Verwandte) besitzen, das spark-submit --proxy-user <tenant> --deploy-mode cluster unter einer Superuser-UID ausführt. Ein Jar bereitstellen, das die Gateway-JVM öffnen kann. --conf spark.driver.defaultExtraClassPath=<staged jar> senden. Die SPARK-41958-Sperre kann auf false bleiben. Das konstruierte spark-submit -cp beginnt trotzdem mit diesem Jar. Klassen darin werden unter der Unix-UID des Gateways geladen.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true ist ein zweiter Durchlauf: .internal() ist nur dokumentiert, --conf schreibt den Schlüssel dennoch, und der YARN-Cluster behält dann --jars in childClasspath. Die öffentliche CVE-2023-22946 bleibt der YARN-Standard---jars-Pfad, den clear() bereits abdeckt. Dieses Überbleibsel ist das ungeschützte defaultExtraClassPath.

Die Hadoop-Impersonation nach einem sauberen Submit ist weiterhin der Proxy-Benutzer für den YARN-AM-/k8s-Treiber. Dieses Überbleibsel betrifft nur die Gateway-JVM.

MethodeSinkReconIntegritätVerfügbarkeitProvenienz
Livy-artiges Submit --proxy-user + yarn/k8s/standalone Cluster + --conf spark.driver.defaultExtraClassPath=<staged local jar>, SPARK-41958-Flag bleibt falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 -cp erster EintragDateien auflisten/lesen, die die Gateway-UID lesen kann (Keytab-Verzeichnis, spark-defaults, lokales Staging). Die Hadoop-Identität späterer RPCs ist weiterhin der Proxy-Benutzer.Tenant-Klassen innerhalb der spark-submit-JVM laden. Die Unix-UID bleibt das Gateway (Hadoop-Proxy-Superuser). Lab: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain schrieb SPARK-PROXYUSER-CLASSPATH-WITNESS. Abgeleitet aus der öffentlichen CVE-Klasse: Hadoop-Configuration-Resource-Overlay / FileSystem-Impl-Lookup als diese UID.Submit-JVM-Absturz, falls das Overlay eine Exception wirft. Nicht die Klasse.Lab-belegtes Laden + Witness-Schreiben als konstruiertes -cp. Hadoop-Overlay abgeleitet. Livy/Kyuubi---conf-Passthrough abgeleitet (diese Trees sind nicht dieser Pin).
Gleiches Submit mit --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true plus --jars / primäre RessourceSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924 dann runMain :980-987Gleiches Recon wie Walk A, auf dem Child-URLClassLoader statt dem System-Loader.--jars auf childClasspath belassen, damit addJarToClasspath läuft. Lab: conf-flag-keeps-jars=yes.Gleich.Lab-belegtes Beibehalten von childClasspath. Kein erneutes Einreichen des öffentlichen YARN---jars-Pfads, den clear() abdeckt, wenn das Flag false bleibt.

Lab-belegt vs. abgeleitet: Konstruiertes -cp enthält defaultExtraClassPath im Cluster-Modus; childClasspath.clear() läuft weiterhin beim Default-Flag; spark.driver.extraClassPath wird im Cluster weggelassen; --jars mit Flag false wird geleert; eine Witness-Klasse auf diesem -cp schreibt das Oracle. Die Ausführung von Hadoop-Config-Klassen ist der öffentliche CVE-2023-22946-Mechanismus, hier nicht erneut ausgeführt. Livy/Kyuubi, die --conf weiterreichen, ist die Architektur, die diese Projekte dokumentieren.

Angrenzend geschlossen (nicht aufblähen)

Tool herunterladen