
「💥」CVE-2022-33891 - Apache Spark Inyección de Comandos
La interfaz de usuario de Apache Spark ofrece la posibilidad de habilitar las ACL a través de la opción de configuración spark.acls.enable. Con un filtro de autenticación, esto comprueba si un usuario tiene permisos de acceso para ver o modificar la aplicación. Si las ACL están habilitadas, una ruta de código en HttpSecurityFilter puede permitir que alguien realice una suplantación de identidad proporcionando un nombre de usuario arbitrario. Un usuario malintencionado podría entonces alcanzar una función de comprobación de permisos que finalmente construirá un comando de shell de Unix basado en su entrada y lo ejecutará. Esto resultará en la ejecución arbitraria de comandos de shell como el usuario con el que Spark se está ejecutando actualmente. Esto afecta a las versiones de Apache Spark 3.0.3 y anteriores, versiones 3.1.1 a 3.1.2, y versiones 3.2.0 a 3.2.1.
private def getUnixGroups(username: String): Set[String] = {
val cmdSeq = Seq("bash", "-c", "id -Gn " + username)
// we need to get rid of the trailing "\n" from the result of command execution
Utils.executeAndGetOutput(cmdSeq).stripLineEnd.split(" ").toSet
}

pip install requests
git clone https://github.com/AmoloHT/CVE-2022-33891
cd CVE-2022-33891
python3 CVE-2022-33891.py -u http://TARGET.TLD