Erick Ramirez Asked: 2022-09-08 21:53:30 +0800 CST2022-09-08 21:53:30 +0800 CST 2022-09-08 21:53:30 +0800 CST 需要哪些步骤来缓解 Cassandra UDF 中的 CVE-2021-44521 漏洞? 772 Cassandra 运营商担心他们容易受到 CVE-2021-44521 中确定的漏洞的攻击。 运营商可以采取哪些措施来降低风险和暴露于漏洞的风险? cassandra 1 个回答 Voted Best Answer Erick Ramirez 2022-09-08T21:53:30+08:002022-09-08T21:53:30+08:00 背景 如果在以下节点上启用脚本用户定义函数(UDF) (默认情况下禁用),攻击者可以利用CVE-2021-44521中描述的漏洞:cassandra.yaml enable_user_defined_functions: true enable_scripted_user_defined_functions: true 并且 UDF 线程被禁用(默认为 true): enable_user_defined_functions_threads: false 风险 在以下情况下,集群不容易受到攻击: UDF 被禁用(默认配置)。 UDF 已启用,UDF 线程默认已启用。 对于易受攻击的集群,管理员已根据建议选择禁用 UDF 线程,这样做并不安全。 攻击者需要权限才能创建用户定义的函数,如果未在集群上启用身份验证,则节点特别容易受到攻击: authenticator: AllowAllAuthenticator 攻击者可以使用此漏洞创建可以在节点上执行任意代码的函数。 解决方法 禁用 UDF 线程是不安全的,不推荐使用,因为它会有效地禁用 Java 中的安全管理器。 重新启用 UDF 线程cassandra.yaml并重新启动集群中的每个节点以使更改生效: enable_user_defined_functions_threads: true 解决方案 CVE-2021-44521 已在 Apache Cassandra 3.0.26、3.11.12 和 4.0.2 ( CASSANDRA-17352 ) 中进行了修补。 如果管理员想在打补丁的集群上运行没有线程的用户定义函数(不推荐),管理员需要明确允许不安全的 UDF: allow_insecure_udfs: true 在cassandra.yaml. 如果现有的 UDF 需要访问java.lang.System(不推荐),请设置: allow_extra_insecure_udfs: true 请注意,如果在集群上启用了 UDF 线程(默认),则无需升级。
背景
如果在以下节点上启用脚本用户定义函数(UDF) (默认情况下禁用),攻击者可以利用CVE-2021-44521中描述的漏洞:
cassandra.yaml
并且 UDF 线程被禁用(默认为 true):
风险
在以下情况下,集群不容易受到攻击:
对于易受攻击的集群,管理员已根据建议选择禁用 UDF 线程,这样做并不安全。
攻击者需要权限才能创建用户定义的函数,如果未在集群上启用身份验证,则节点特别容易受到攻击:
攻击者可以使用此漏洞创建可以在节点上执行任意代码的函数。
解决方法
禁用 UDF 线程是不安全的,不推荐使用,因为它会有效地禁用 Java 中的安全管理器。
重新启用 UDF 线程
cassandra.yaml
并重新启动集群中的每个节点以使更改生效:解决方案
CVE-2021-44521 已在 Apache Cassandra 3.0.26、3.11.12 和 4.0.2 ( CASSANDRA-17352 ) 中进行了修补。
如果管理员想在打补丁的集群上运行没有线程的用户定义函数(不推荐),管理员需要明确允许不安全的 UDF:
在
cassandra.yaml
. 如果现有的 UDF 需要访问java.lang.System
(不推荐),请设置:请注意,如果在集群上启用了 UDF 线程(默认),则无需升级。