
「💥」CVE-2022-33891 - Injeção de Comandos no Apache Spark
A interface do Apache Spark oferece a possibilidade de ativar ACLs através da opção de configuração spark.acls.enable. Com um filtro de autenticação, isso verifica se um usuário tem permissões de acesso para visualizar ou modificar a aplicação. Se as ACLs estiverem ativadas, um caminho de código no HttpSecurityFilter pode permitir que alguém faça uma suplantação de identidade fornecendo um nome de usuário arbitrário. Um usuário mal-intencionado pode então conseguir alcançar uma função de verificação de permissão que acabará por construir um comando shell Unix baseado na sua entrada e executá-lo. Isso resultará na execução arbitrária de comandos shell como o usuário sob o qual o Spark está sendo executado. Isso afeta as versões 3.0.3 e anteriores do Apache Spark, versões 3.1.1 a 3.1.2 e versões 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