
「💥」CVE-2022-33891 - حقن الأوامر في Apache Spark
تتيح واجهة Apache Spark UI إمكانية تفعيل قوائم التحكم في الوصول (ACLs) عبر خيار التكوين spark.acls.enable. مع وجود مرشح مصادقة، يتحقق هذا الخيار من صلاحيات المستخدم لعرض التطبيق أو تعديله. إذا تم تفعيل ACLs، فإن مسار برمجي في HttpSecurityFilter قد يسمح لشخص ما بانتحال شخصية مستخدم آخر عن طريق تقديم اسم مستخدم عشوائي. قد يتمكن مستخدم خبيث بعد ذلك من الوصول إلى دالة فحص صلاحيات ستقوم في النهاية ببناء أمر shell Unix استنادًا إلى مدخلاته، ثم تنفيذه. سيؤدي ذلك إلى تنفيذ أوامر shell عشوائية تحت حساب المستخدم الذي يعمل عليه 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