
「💥」CVE-2022-33891 - Apache Spark コマンドインジェクション
Apache Spark UIは、構成オプションspark.acls.enableを介してACLを有効にする機能を提供します。認証フィルターと組み合わせることで、ユーザーがアプリケーションの表示や変更に対するアクセス権限を持っているかを確認します。ACLが有効な場合、HttpSecurityFilter内のコードパスにより、任意のユーザー名を指定してなりすまし(impersonation)を実行できる可能性があります。悪意のあるユーザーは、権限確認関数に到達し、その関数が入力に基づいてUnixシェルコマンドを構築・実行する可能性があります。これにより、Sparkが現在実行中のユーザーとして任意のシェルコマンドが実行されます。この脆弱性は、Apache Spark バージョン3.0.3以前、3.1.1から3.1.2、および3.2.0から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