Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
spark-proxyuser-classpath — Apache Spark 4.2.0 - Alta - Remoto - Privilégio remanescente - proxy-user defaultExtraClassPath | Kitploit
Ferramentas/GitHubGitHub/abraxas/spark-proxyuser-classpath
Escalada de PrivilégiosSegurança de ContêineresAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoSegurança na NuvemPapers e PesquisaRed Teaming

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
abraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

Apache Spark 4.2.0 - Alta - Remoto - Privilégio remanescente - proxy-user defaultExtraClassPath

Ver Repositório
há 1 diaAinda não revisado

Abraxas Labs - spark-proxyuser-classpath

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

spark-proxyuser-classpath

Classe: Resíduo de privilégio (resíduo de CVE-2023-22946 / SPARK-41958) Alcance: Remoto

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

CVE-2023-22946 / SPARK-41958 ainda define spark.submit.proxyUser.allowCustomClasspathInClusterMode como false por padrão e ainda executa childClasspath.clear() no envio de cluster com --proxy-user. Esse é o caminho público de --jars do YARN. O Spark 4.0 então adicionou spark.driver.defaultExtraClassPath. O launcher sempre prefixa essa chave ao -cp da JVM do spark-submit, inclusive no modo cluster. O SPARK-41958 nunca a vê.

Um tenant no estilo Livy ainda pode carregar um jar preparado dentro da JVM do spark-submit do gateway. O UserGroupInformation.doAs do Hadoop não altera esse UID Unix.

IDainda sem CVE
ClasseResíduo de privilégio (resíduo de CVE-2023-22946 / SPARK-41958)
AlcanceRemoto (envio de job --proxy-user no estilo Livy através do 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
ProdutoApache Spark
AfetadoApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
Autenticaçãotenant autenticado de um gateway no estilo Livy / Kyuubi / Oozie que encaminha --conf e --jars preparados para spark-submit --proxy-user ... --deploy-mode cluster
LicençaGNU Affero GPL v3.0
LabApenas 127.0.0.1:18950. Arquivo testemunha. Gadget do launcher / submit citados.

O que um atacante pode fazer

Possuir uma conta de tenant em um gateway Spark multi-tenant (Livy, Kyuubi, Oozie e similares) que executa spark-submit --proxy-user <tenant> --deploy-mode cluster como um UID de superusuário. Preparar um jar que a JVM do gateway consiga abrir. Enviar --conf spark.driver.defaultExtraClassPath=<staged jar>. O gate do SPARK-41958 pode permanecer false. O spark-submit -cp construído ainda começa com esse jar. As classes nele carregam com o UID Unix do gateway.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true é um segundo caminho: .internal() é apenas documentação, --conf ainda grava a chave, e o cluster YARN então mantém --jars em childClasspath. O CVE-2023-22946 público continua sendo o caminho padrão de --jars do YARN que clear() já cobre. Este resíduo é o defaultExtraClassPath sem gate.

A personificação do Hadoop após um envio limpo ainda é o proxy user para o YARN AM / driver k8s. Este resíduo é apenas a JVM do gateway.

MétodoSinkReconIntegridadeDisponibilidadeProveniência
Envio no estilo Livy --proxy-user + cluster yarn/k8s/standalone + --conf spark.driver.defaultExtraClassPath=<staged local jar>, flag do SPARK-41958 deixada falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 primeira entrada do -cpListar/ler arquivos que o UID do gateway consegue ler (diretório de keytab, spark-defaults, staging local). A identidade Hadoop dos RPCs posteriores ainda é o proxy user.Carregar classes do tenant dentro da JVM do spark-submit. O UID Unix permanece o do gateway (superusuário proxy do Hadoop). Lab: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain gravou SPARK-PROXYUSER-CLASSPATH-WITNESS. Inferido a partir da classe pública do CVE: sobreposição de recursos de Configuration do Hadoop / lookup de implementação de FileSystem como esse UID.Crash da JVM de submit se a sobreposição lançar exceção. Não a classe.Carregamento comprovado em lab + gravação de testemunha conforme -cp construído. Sobreposição do Hadoop inferida. Passthrough de --conf do Livy/Kyuubi inferido (essas árvores não são este pin).
Mesmo envio com --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true mais --jars / recurso primárioSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924 depois runMain :980-987Mesmo recon do caminho A, no URLClassLoader filho em vez do loader do sistema.Manter --jars em childClasspath para que addJarToClasspath execute. Lab: conf-flag-keeps-jars=yes.O mesmo.Manutenção de childClasspath comprovada em lab. Não é um novo registro do caminho público de --jars do YARN que clear() cobre quando a flag permanece false.

Comprovado em lab vs inferido: o -cp construído contém defaultExtraClassPath no modo cluster; childClasspath.clear() ainda executa com a flag padrão; spark.driver.extraClassPath é omitido no cluster; --jars com a flag false é limpo; uma classe testemunha nesse -cp grava o oráculo. A execução de classe de configuração do Hadoop é o mecanismo público do CVE-2023-22946, não reexecutado aqui. O encaminhamento de --conf pelo Livy/Kyuubi é a arquitetura que esses projetos documentam.

Adjacentes fechados (não inflar)

Baixar ferramenta