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-rest-auth-bypass — Apache Spark 4.2.0 - Alta - Remoto - Privilégio remanescente - REST standalone ignora spark.authenticate | Kitploit
Ferramentas/GitHubGitHub/abraxas/spark-rest-auth-bypass
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAutenticaçãoPapers e PesquisaConfiguração IncorretaRed TeamingLabs e Prática
GitHub
3há 2 diasAinda não revisado

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
abraxas/spark-rest-auth-bypass

spark-rest-auth-bypass

Apache Spark 4.2.0 - Alta - Remoto - Privilégio remanescente - REST standalone ignora spark.authenticate

Ver Repositório

Abraxas Labs - spark-rest-auth-bypass

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  spark-rest-auth-bypass

spark-rest-auth-bypass

Classe: Privilégio remanescente Alcance: Remoto

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

O REST do Master standalone está ativado por padrão na porta 6066 e nunca lê spark.authenticate. O CVE-2018-11770 prometeu REST desativado por padrão e falha segura caso o segredo RPC estivesse definido enquanto o REST estivesse ativo. Esta versão reverteu ambos. MASTER_REST_SERVER_ENABLED é createWithDefault(true). Os filtros são apenas MASTER_REST_SERVER_FILTERS, padrão Nil. Um POST /v1/submissions/create não autenticado executa o main do atacante com o UID do Worker. O Worker injeta _SPARK_AUTH_SECRET, portanto o limite de 2018 de "driver sem executores" não se sustenta.

Este é um resquício do 11770, não um novo RCE CVE-2020-9480. O RPC 7077 ainda instala AuthServerBootstrap. O envio de job em um cluster com spark.authenticate=false é o padrão documentado e não é este bug.

IDainda sem CVE
ClassePrivilégio remanescente (resquício do CVE-2018-11770)
AlcanceRemoto (HTTP não autenticado para o Master standalone 6066)
CWECWE-306, CWE-287
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProdutoApache Spark
Afetado4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8) REST do Master standalone
Autenticaçãonenhuma no REST. Operador definiu spark.authenticate=true. REST deixado no padrão.
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1:18900. Imagem oficial spark:4.2.0.

Fixe a tag v4.2.0, peel 32f7299601108917fb01920a54e084595b7b3bf8 (2026-07-11, v4.2.0-rc6). Não é master. Não é um RC 4.3.

O que um atacante pode fazer

Alcançar o REST do Master standalone na 6066. Sem cabeçalho Authorization. spark.authenticate está ativado. spark.master.rest.filters não está definido. Pelo menos um Worker está ativo.

MétodoSinkPrivilégio
POST /v1/submissions/create não autenticadoRequestSubmitDriver (Master.scala:402-420) e então Worker DriverWrapper classForName(mainClass).mainIntegridade (comprovada em lab): executar o mainClass do atacante com o UID do Worker. Lab: driver RUNNING, arquivo testemunha.
Mesmo create; Worker CommandUtils.buildLocalCommandenv do driver _SPARK_AUTH_SECRETIntegridade (comprovada em lab): o driver pode entrar via SASL no cluster RPC autenticado. Lab: injected=yes.
GET /v1/submissions/status/{id} não autenticadoRequestDriverStatus (Master.scala:489-503)Recon (comprovado em lab para o id criado): estado do driver / host do worker.
GET /v1/submissions/readyz não autenticadoRequestReadyzRecon (comprovado em lab): Master não está STANDBY.
POST /v1/submissions/kill/{id} não autenticadoRequestKillDriver (Master.scala:422-453)Integridade + disponibilidade (inferido): parar o driver standalone de outro inquilino. Mesma fiação de servlet não autenticada; não exercitado.
POST /v1/submissions/killall não autenticadoRequestKillAllDrivers (Master.scala:455-478)Disponibilidade (inferido): encerrar todos os drivers standalone em espera/execução. Não exercitado.
POST /v1/submissions/clear não autenticadoRequestClearCompletedDriversAndAppsIntegridade (inferido): descartar o registro de drivers/apps concluídos. Não exercitado.

Comprovado em lab vs inferido: create, injeção de segredo, status do próprio id e readyz são de lab. Kill / killall / clear são inferidos do mesmo mapa de servlet não autenticado.

Requer: Master standalone (não YARN/K8s). Operador definiu spark.authenticate=true. REST deixado no padrão (spark.master.rest.enabled true, spark.master.rest.filters não definido). Caminho de rede para o Master 6066. Pelo menos um Worker. Não é o cluster documentado como aberto (spark.authenticate=false).

Superfície adjacente que permanece fechada

SuperfícieMotivo
RPC 7077 com spark.authenticate=trueAuthServerBootstrap ainda é exigido. O caminho de recepção do CVE-2020-9480 permanece fechado. Não é um novo RCE 9480.
JWSFilter quando definidospark.master.rest.filters=org.apache.spark.ui.JWSFilter mais secretKey. Testes retornam 403 sem JWT. Opt-in. Padrão Nil.
UI doAsainda exige admin. O REST não herda os filtros da UI.
Shell da UI do CVE-2022-33891resquício de argv id -Gn fechado nesta versão.
Envio YARN / Kuberneteseste servidor REST é apenas do Master standalone.
Envio de job com spark.authenticate=false padrãoFAQ: por design. Não é este resquício.
REST do Mesosremovido no Spark 4.0.
Padrão do CLI spark-submitainda usa RPC 7077 (useRest com padrão de string false). --kill / --status em spark:// sempre usam REST. O resquício é o listener do servidor.

Como eu encontrei

A correção de código do CVE-2018-11770 (SPARK-25088) foi: REST desativado por padrão, e require do Master com falha segura caso spark.authenticate.secret estivesse definido enquanto o REST estivesse ativo. Esta versão:

Baixar ferramenta