Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
spark-rest-auth-bypass — Apache Spark 4.2.0 - Alta - Remota - Privilegio residual - REST independiente ignora spark.authenticate | Kitploit
Herramientas/GitHubGitHub/abraxas/spark-rest-auth-bypass
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónPapers e InvestigaciónMala ConfiguraciónRed TeamingLabs y Práctica
GitHub
3hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
abraxas/spark-rest-auth-bypass

spark-rest-auth-bypass

Apache Spark 4.2.0 - Alta - Remota - Privilegio residual - REST independiente ignora spark.authenticate

Ver Repositorio

Abraxas Labs - spark-rest-auth-bypass

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

spark-rest-auth-bypass

Clase: Privilegio residual Alcance: Remoto

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

El REST del Master en modo standalone está activado por defecto en el puerto 6066 y nunca lee spark.authenticate. CVE-2018-11770 prometió REST desactivado por defecto y un fail-closed si el secreto RPC estaba configurado mientras REST estaba activado. Este pin revirtió ambas cosas. MASTER_REST_SERVER_ENABLED es createWithDefault(true). Los filtros son solo MASTER_REST_SERVER_FILTERS, por defecto Nil. Un POST /v1/submissions/create no autenticado ejecuta el main del atacante con el UID del Worker. El Worker inyecta _SPARK_AUTH_SECRET, por lo que el límite de 2018 de "driver sin ejecutores" no se sostiene.

Esto es un residuo de 11770, no un nuevo RCE CVE-2020-9480. El RPC 7077 sigue instalando AuthServerBootstrap. El envío de trabajos en un clúster con spark.authenticate=false es el comportamiento documentado por defecto y no es este bug.

IDsin CVE todavía
ClasePrivilegio residual (residuo de CVE-2018-11770)
AlcanceRemoto (HTTP no autenticado al 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
ProductoApache Spark
Afectado4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8) REST del Master standalone
Autenticaciónninguna en REST. El operador configuró spark.authenticate=true. REST quedó por defecto.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18900. Imagen oficial spark:4.2.0.

Fijé el tag v4.2.0, peel 32f7299601108917fb01920a54e084595b7b3bf8 (2026-07-11, v4.2.0-rc6). No master. No un RC de 4.3.

Qué puede hacer un atacante

Alcanzar el REST del Master standalone en 6066. Sin cabecera Authorization. spark.authenticate está activado. spark.master.rest.filters no está configurado. Al menos un Worker está activo.

MétodoSinkPrivilegio
POST /v1/submissions/create sin autenticaciónRequestSubmitDriver (Master.scala:402-420) y luego el Worker DriverWrapper classForName(mainClass).mainIntegridad (probado en laboratorio): ejecutar el mainClass del atacante con el UID del Worker. Laboratorio: driver RUNNING, archivo testigo.
Mismo create; Worker CommandUtils.buildLocalCommandenv del driver _SPARK_AUTH_SECRETIntegridad (probado en laboratorio): el driver puede unirse por SASL al clúster RPC autenticado. Laboratorio: injected=yes.
GET /v1/submissions/status/{id} sin autenticaciónRequestDriverStatus (Master.scala:489-503)Reconocimiento (probado en laboratorio para el id creado): estado del driver / host del worker.
GET /v1/submissions/readyz sin autenticaciónRequestReadyzReconocimiento (probado en laboratorio): el Master no está en STANDBY.
POST /v1/submissions/kill/{id} sin autenticaciónRequestKillDriver (Master.scala:422-453)Integridad + disponibilidad (inferido): detener el driver standalone de otro inquilino. Mismo cableado del servlet sin autenticación; no ejercitado.
POST /v1/submissions/killall sin autenticaciónRequestKillAllDrivers (Master.scala:455-478)Disponibilidad (inferido): terminar todos los drivers standalone en espera/en ejecución. No ejercitado.
POST /v1/submissions/clear sin autenticaciónRequestClearCompletedDriversAndAppsIntegridad (inferido): eliminar el registro de drivers/apps completados. No ejercitado.

Probado en laboratorio vs inferido: create, inyección del secreto, status del propio id y readyz son de laboratorio. Kill / killall / clear se infieren del mismo mapa de servlets sin autenticación.

Requiere: Master standalone (no YARN/K8s). El operador configuró spark.authenticate=true. REST quedó por defecto (spark.master.rest.enabled true, spark.master.rest.filters sin configurar). Ruta de red al Master 6066. Al menos un Worker. No el clúster documentado como abierto (spark.authenticate=false).

Superficie adyacente que permanece cerrada

SuperficieMotivo
RPC 7077 con spark.authenticate=trueAuthServerBootstrap sigue siendo obligatorio. La ruta de recepción de CVE-2020-9480 permanece cerrada. No es un nuevo RCE 9480.
JWSFilter cuando está configuradospark.master.rest.filters=org.apache.spark.ui.JWSFilter más secretKey. Las pruebas dan 403 sin JWT. Opt-in. Por defecto Nil.
UI doAssigue requiriendo admin. REST no hereda los filtros de la UI.
Shell de la UI de CVE-2022-33891el residuo de argv id -Gn está cerrado en este pin.
Envío YARN / Kuberneteseste servidor REST es solo del Master standalone.
Envío de trabajos con spark.authenticate=false por defectoFAQ: por diseño. No es este residuo.
REST de Mesoseliminado en Spark 4.0.
spark-submit de CLI por defectosigue usando RPC 7077 (useRest con valor por defecto de cadena false). --kill / --status sobre spark:// siempre usan REST. El residuo es el listener del servidor.

Cómo lo encontré

El arreglo de código de CVE-2018-11770 (SPARK-25088) fue: REST desactivado por defecto, y require de que el Master hiciera fail-closed si spark.authenticate.secret estaba configurado mientras REST estaba activado. Este pin:

Descargar herramienta