
「💥」CVE-2022-33891 - Apache Spark Befehlsinjektion
Die Apache Spark UI bietet die Möglichkeit, ACLs über die Konfigurationsoption spark.acls.enable zu aktivieren. Mit einem Authentifizierungsfilter wird überprüft, ob ein Benutzer die Berechtigung hat, die Anwendung anzuzeigen oder zu ändern. Wenn ACLs aktiviert sind, kann ein Codepfad in HttpSecurityFilter es jemandem ermöglichen, eine Identitätsanmaßung durchzuführen, indem er einen beliebigen Benutzernamen angibt. Ein böswilliger Benutzer könnte dann eine Berechtigungsprüfungsfunktion erreichen, die letztendlich einen Unix-Shell-Befehl basierend auf seiner Eingabe erstellt und ausführt. Dies führt zur Ausführung beliebiger Shell-Befehle als der Benutzer, unter dem Spark gerade läuft. Dies betrifft Apache Spark Versionen 3.0.3 und älter, Versionen 3.1.1 bis 3.1.2 und Versionen 3.2.0 bis 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