Apache Spark UI 容易受到远程命令注入漏洞(编号为 CVE-2022-33891)的影响。该缺陷源于对用户身份验证和访问控制处理不当,尤其是在启用访问控制列表(ACL)时。当通过 spark.acls.enable 配置选项启用 ACL 时,身份验证过滤器应验证用户是否拥有查看或修改应用程序所需的权限。然而,HttpSecurityFilter 中存在一个漏洞,允许攻击者通过提供任意用户名进行冒充。
启用 ACL 后,HttpSecurityFilter 中的特定代码路径无法充分验证用户身份。这一疏忽使攻击者能够绕过身份验证机制并触达权限检查函数。该函数会不经意地基于用户提供的输入构造并执行 Unix shell 命令,从而导致在托管 Apache Spark UI 的服务器上执行任意代码。
该漏洞影响以下 Apache Spark 版本:
已开发出一个概念验证(PoC)来演示此漏洞的可利用性。该 PoC 严格用于教育和安全研究目的,以帮助理解和缓解此缺陷。
所提供的 PoC 仅用于教育和道德黑客目的。未经事先双方同意,使用该 PoC 对 Web 应用程序或服务器发起攻击属于违法行为。作者不承担任何责任,也不对因使用本材料而造成的任何滥用或损害负责。强烈建议用户负责任且合乎道德地使用此信息。