
「💥」CVE-2022-33891 - Injection de commande Apache Spark
L’interface utilisateur d’Apache Spark offre la possibilité d’activer les ACL via l’option de configuration spark.acls.enable. Avec un filtre d’authentification, celle-ci vérifie si un utilisateur dispose des permissions d’accès pour visualiser ou modifier l’application. Si les ACL sont activées, un chemin de code dans HttpSecurityFilter peut permettre à quelqu’un d’usurper une identité en fournissant un nom d’utilisateur arbitraire. Un utilisateur malveillant pourrait alors atteindre une fonction de vérification des permissions qui construira finalement une commande shell Unix basée sur son entrée, puis l’exécuter. Cela entraînera l’exécution arbitraire de commandes shell sous l’identité de l’utilisateur Spark en cours d’exécution. Cela affecte les versions 3.0.3 et antérieures, les versions 3.1.1 à 3.1.2, et les versions 3.2.0 à 3.2.1 d’Apache Spark.
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