Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
spark-proxyuser-classpath — Apache Spark 4.2.0 - Alta - Remoto - Privilegio residuo - proxy-user defaultExtraClassPath | Kitploit
Strumenti/GitHubGitHub/abraxas/spark-proxyuser-classpath
Escalation di PrivilegiSicurezza dei ContenitoriAnalisi delle VulnerabilitàExploitPenetration TestingSicurezza CloudPaper e RicercaRed Teaming

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
abraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

Apache Spark 4.2.0 - Alta - Remoto - Privilegio residuo - proxy-user defaultExtraClassPath

Vedi Repository
1 giorno faNon ancora revisionato

Abraxas Labs - spark-proxyuser-classpath

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

spark-proxyuser-classpath

Classe: Privilegio residuo (residuo di CVE-2023-22946 / SPARK-41958) Portata: Remota

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

CVE-2023-22946 / SPARK-41958 mantiene ancora spark.submit.proxyUser.allowCustomClasspathInClusterMode a false per impostazione predefinita ed esegue ancora childClasspath.clear() sul submit in cluster con --proxy-user. Questo è il percorso pubblico YARN --jars. Spark 4.0 ha poi aggiunto spark.driver.defaultExtraClassPath. Il launcher antepone sempre quella chiave al -cp della JVM di spark-submit, incluso in modalità cluster. SPARK-41958 non la vede mai.

Un tenant in stile Livy può comunque caricare un jar preparato all'interno della JVM spark-submit del gateway. UserGroupInformation.doAs di Hadoop non cambia quell'UID Unix.

IDnessuna CVE al momento
ClassePrivilegio residuo (residuo di CVE-2023-22946 / SPARK-41958)
PortataRemota (submit di job in stile Livy con --proxy-user attraverso il gateway)
CWECWE-269, CWE-427
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdottoApache Spark
AffettoApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
Authtenant autenticato di un gateway in stile Livy / Kyuubi / Oozie che inoltra --conf e --jars preparati in spark-submit --proxy-user ... --deploy-mode cluster
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18950. File witness. Gadget del launcher / submit citati.

Cosa può fare un attaccante

Possedere un account tenant su un gateway Spark multi-tenant (Livy, Kyuubi, Oozie e simili) che esegue spark-submit --proxy-user <tenant> --deploy-mode cluster con un UID superuser. Preparare un jar che la JVM del gateway può aprire. Inviare --conf spark.driver.defaultExtraClassPath=<staged jar>. Il gate di SPARK-41958 può restare false. Il spark-submit -cp costruito inizia comunque con quel jar. Le classi al suo interno vengono caricate con l'UID Unix del gateway.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true è un secondo percorso: .internal() è solo documentazione, --conf scrive comunque la chiave, e il cluster YARN mantiene poi --jars su childClasspath. La CVE-2023-22946 pubblica resta il percorso predefinito YARN --jars che clear() già copre. Questo residuo è defaultExtraClassPath non protetto da gate.

L'impersonificazione Hadoop dopo un submit pulito è comunque l'utente proxy per l'AM YARN / il driver k8s. Questo residuo riguarda solo la JVM del gateway.

MetodoSinkReconIntegritàDisponibilitàProvenienza
Submit in stile Livy --proxy-user + cluster yarn/k8s/standalone + --conf spark.driver.defaultExtraClassPath=<staged local jar>, flag SPARK-41958 lasciato falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 prima voce di -cpElenca/legge file che l'UID del gateway può leggere (directory keytab, spark-defaults, staging locale). L'identità Hadoop delle RPC successive è comunque l'utente proxy.Carica classi del tenant all'interno della JVM spark-submit. L'UID Unix resta quello del gateway (superuser proxy Hadoop). Lab: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain ha scritto SPARK-PROXYUSER-CLASSPATH-WITNESS. Inferito dalla classe CVE pubblica: overlay di risorse Configuration di Hadoop / lookup dell'implementazione FileSystem con quell'UID.Crash della JVM di submit se l'overlay genera eccezioni. Non la classe.Caricamento provato in lab + scrittura witness come -cp costruito. Overlay Hadoop inferito. Passthrough --conf di Livy/Kyuubi inferito (quei tree non sono questo pin).
Stesso submit con --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true più --jars / risorsa primariaSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924 poi runMain :980-987Stessa recon del percorso A, sul URLClassLoader figlio invece che sul loader di sistema.Mantiene --jars su childClasspath così addJarToClasspath viene eseguito. Lab: conf-flag-keeps-jars=yes.Idem.Mantenimento di childClasspath provato in lab. Non è una ri-segnalazione del percorso pubblico YARN --jars che clear() copre quando il flag resta false.

Provato in lab vs inferito: il -cp costruito contiene defaultExtraClassPath in modalità cluster; childClasspath.clear() viene comunque eseguito con il flag predefinito; spark.driver.extraClassPath è omesso in cluster; --jars con flag false viene svuotato; una classe witness su quel -cp scrive l'oracle. L'esecuzione della classe di configurazione Hadoop è il meccanismo pubblico di CVE-2023-22946, non rieseguito qui. L'inoltro di --conf da parte di Livy/Kyuubi è l'architettura documentata da quei progetti.

Adiacenti chiusi (non gonfiare)

Scarica lo strumento