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-proxyuser-classpath — Apache Spark 4.2.0 - Alta - Remoto - Privilegio residual - proxy-user defaultExtraClassPath | Kitploit
Herramientas/GitHubGitHub/abraxas/spark-proxyuser-classpath
Escalada de PrivilegiosSeguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónSeguridad en la NubePapers e InvestigaciónRed Teaming

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
GitHub
abraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

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

Ver Repositorio
hace 1 díaAún no revisado

Abraxas Labs - spark-proxyuser-classpath

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

spark-proxyuser-classpath

Clase: Resto de privilegio (resto de CVE-2023-22946 / SPARK-41958) Alcance: Remoto

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

CVE-2023-22946 / SPARK-41958 todavía establece por defecto spark.submit.proxyUser.allowCustomClasspathInClusterMode en false y todavía ejecuta childClasspath.clear() en el envío de clúster con --proxy-user. Esa es la ruta pública de YARN --jars. Spark 4.0 luego añadió spark.driver.defaultExtraClassPath. El lanzador siempre antepone esa clave al -cp de la JVM de spark-submit, incluso en modo clúster. SPARK-41958 nunca lo ve.

Un inquilino al estilo Livy todavía puede cargar un jar preparado dentro de la JVM de spark-submit de la puerta de enlace. El UserGroupInformation.doAs de Hadoop no cambia ese UID de Unix.

IDsin CVE todavía
ClaseResto de privilegio (resto de CVE-2023-22946 / SPARK-41958)
AlcanceRemoto (envío de trabajo --proxy-user al estilo Livy a través de la puerta de enlace)
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
ProductoApache Spark
AfectadoApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
Autenticacióninquilino autenticado de una puerta de enlace al estilo Livy / Kyuubi / Oozie que reenvía --conf y --jars preparados a spark-submit --proxy-user ... --deploy-mode cluster
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18950. Archivo testigo. Gadget de los recorridos citados del lanzador / submit.

Qué puede hacer un atacante

Tener una cuenta de inquilino en una puerta de enlace Spark multiinquilino (Livy, Kyuubi, Oozie y similares) que ejecuta spark-submit --proxy-user <tenant> --deploy-mode cluster como un UID de superusuario. Preparar un jar que la JVM de la puerta de enlace pueda abrir. Enviar --conf spark.driver.defaultExtraClassPath=<staged jar>. La compuerta de SPARK-41958 puede permanecer en false. El spark-submit -cp construido todavía comienza con ese jar. Las clases en él se cargan con el UID de Unix de la puerta de enlace.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true es un segundo recorrido: .internal() es solo documentación, --conf todavía escribe la clave, y el clúster de YARN entonces mantiene --jars en childClasspath. El CVE-2023-22946 público sigue siendo la ruta por defecto de YARN --jars que clear() ya cubre. Este resto es defaultExtraClassPath sin compuerta.

La suplantación de Hadoop después de un envío limpio sigue siendo el usuario proxy para el AM de YARN / driver de k8s. Este resto es solo la JVM de la puerta de enlace.

MétodoSumideroReconocimientoIntegridadDisponibilidadProcedencia
Envío al estilo Livy --proxy-user + clúster yarn/k8s/standalone + --conf spark.driver.defaultExtraClassPath=<staged local jar>, con el flag de SPARK-41958 dejado en falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 primera entrada de -cpListar/leer archivos que el UID de la puerta de enlace puede leer (directorio de keytab, spark-defaults, staging local). La identidad Hadoop de RPCs posteriores sigue siendo el usuario proxy.Cargar clases del inquilino dentro de la JVM de spark-submit. El UID de Unix sigue siendo la puerta de enlace (superusuario proxy de Hadoop). Laboratorio: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain escribió SPARK-PROXYUSER-CLASSPATH-WITNESS. Inferido de la clase del CVE público: superposición de recursos de Configuration de Hadoop / búsqueda de implementación de FileSystem como ese UID.Caída de la JVM de envío si la superposición lanza una excepción. No la clase.Carga probada en laboratorio + escritura de testigo como -cp construido. Superposición de Hadoop inferida. Passthrough de --conf de Livy/Kyuubi inferido (esos árboles no son este pin.
Mismo envío con --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true más --jars / recurso primarioSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924 luego runMain :980-987Mismo reconocimiento que el recorrido A, sobre el URLClassLoader hijo en lugar del cargador del sistema.Mantener --jars en childClasspath para que se ejecute addJarToClasspath. Laboratorio: conf-flag-keeps-jars=yes.Igual.Mantenimiento de childClasspath probado en laboratorio. No es una re-presentación de la ruta pública de YARN --jars que clear() cubre cuando el flag permanece en false.

Probado en laboratorio vs inferido: el -cp construido contiene defaultExtraClassPath en modo clúster; childClasspath.clear() todavía se ejecuta con el flag por defecto; spark.driver.extraClassPath se omite en clúster; --jars con el flag en false se limpia; una clase testigo en ese -cp escribe el oráculo. La ejecución de clases de configuración de Hadoop es el mecanismo del CVE-2023-22946 público, no se re-ejecuta aquí. El reenvío de --conf por Livy/Kyuubi es la arquitectura que esos proyectos documentan.

Adyacente cerrado (no inflar)

Descargar herramienta