Kafka UI中获取远程代码执行的3种方法

Kafka UI中获取远程代码执行的3种方法

💡 原文英文,约2100词,阅读约需8分钟。
📝

内容提要

Kafka UI是一个流行的开源Web应用程序,用于管理和监控Apache Kafka集群。作者发现了Kafka UI中的三个远程代码执行(RCE)漏洞,并分享了他的发现。这些漏洞已在0.7.2版本中修复。作者建议用户及时升级到修复的版本。

🔎

延伸解读

默认配置下的安全风险

Kafka UI 在默认配置下不需要身份验证,这意味着任何能访问其 Web 界面的人都可以读取和写入 Kafka 数据。许多实例因此被部署在内网甚至暴露在互联网上,攻击者可能利用这一点作为进入内网的跳板。即使数据本身不敏感,这种未授权访问也可能导致更严重的后果,例如通过后续漏洞实现远程代码执行。

漏洞利用的共性条件

三个 RCE 漏洞的利用大多需要特定条件:CVE-2023-52251 要求集群中至少有一个包含消息的主题,但攻击者可通过 API 创建;CVE-2024-32030 和 CVE-2023-25194 则要求 dynamic.config.enabled 设置为 true,而该设置在许多教程中被建议开启。这些条件在真实环境中并不罕见,增加了漏洞的可利用性。

修复与缓解措施

所有漏洞已在 Kafka UI 0.7.2 版本中修复,用户应尽快升级。对于无法立即升级的情况,可考虑启用身份验证、限制网络访问、关闭 dynamic.config.enabled 以及使用 jdk.serialFilter 限制反序列化类。但需注意,这些缓解措施可能影响功能,需充分测试。

底层技术的安全启示

这些漏洞源于 Groovy 脚本、JMX 和 SASL JAAS 等 Java 特性被不当暴露给用户输入。尽管 JDK 已对 JMX 和 JNDI 攻击进行加固,但在特定条件下仍可被利用。这提醒开发者,在使用强大功能时应严格限制用户输入,并关注依赖库的安全更新。

❓

Q&A

Kafka UI的主要功能是什么?

Kafka UI是一个开源Web应用程序,用于管理和监控Apache Kafka集群。

Kafka UI中发现了哪些远程代码执行漏洞?

发现了三个漏洞:CVE-2023-52251、CVE-2024-32030和CVE-2023-25194。

如何防止Kafka UI中的安全漏洞?

建议用户及时升级到0.7.2版本,并对用户输入进行严格限制。

CVE-2023-52251漏洞是如何被利用的?

攻击者可以通过Groovy脚本执行任意代码,利用消息过滤功能进行攻击。

Kafka UI的默认配置有什么安全隐患?

在默认配置下,Kafka UI不需要身份验证,导致许多实例未受保护。

Kafka UI的安全性依赖于什么?

Kafka UI的安全性依赖于对用户输入的严格限制,特别是在使用Groovy脚本和JMX等功能时。

🏷️

标签

➡️

继续阅读