自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Apache Avro SDK曝關(guān)鍵漏洞,可在Java中執(zhí)行任意代碼

安全 漏洞
Apache Avro Java軟件開發(fā)工具包(SDK)中披露了一個關(guān)鍵安全漏洞,如果成功利用,可以在易受攻擊的實例上執(zhí)行任意代碼。

Apache Avro Java軟件開發(fā)工具包(SDK)中披露了一個關(guān)鍵安全漏洞,如果成功利用,可以在易受攻擊的實例上執(zhí)行任意代碼。該漏洞編號為CVE-2024-47561,影響1.11.4之前版本的所有軟件。Databricks安全團隊的Kostya Kortchinsky被發(fā)現(xiàn)并報告了這個安全缺陷。

Apache Avro與谷歌的Protocol Buffers(protobuf)類似,是一個為大規(guī)模數(shù)據(jù)處理提供語言中立的數(shù)據(jù)序列化框架的開源項目,提供緊湊、快速且高效的數(shù)據(jù)格式。它在大數(shù)據(jù)處理、分布式系統(tǒng)和云計算中被廣泛使用。項目維護者發(fā)布公告稱,“Apache Avro 1.11.3及之前版本的Java SDK中的模式解析允許惡意行為者執(zhí)行任意代碼,建議用戶升級到1.11.4或1.12.0版本,這些版本修復(fù)了此問題?!?/p>

Avro團隊進一步指出,如果應(yīng)用程序允許用戶提供自己的Avro模式進行解析,則該漏洞會影響任何應(yīng)用程序。

“CVE-2024-47561影響Apache Avro 1.11.3及之前版本,在通過avroAvro模式反序列化接收到的輸入時。處理來自威脅行為者的此類輸入會導(dǎo)致代碼執(zhí)行。根據(jù)我們的威脅情報報告,沒有公開的PoC,但這個漏洞存在于通過ReflectData和SpecificData指令處理包時,也可以通過Kafka利用。

緩解措施

1. 更新 Apache Avro SDK

確保您使用的是最新版本的 Apache Avro SDK來解決此漏洞。

xml
<!-- 示例 Maven 依賴 -->
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.10.2</version> <!-- 使用最新版本 -->
</dependency>

2. 驗證輸入數(shù)據(jù)

在反序列化任何數(shù)據(jù)之前,請根據(jù)預(yù)定義的模式對其進行驗證,或使用白名單方法確保只處理預(yù)期的數(shù)據(jù)格式。

java
import org.apache.avro.Schema;
import org.apache.avro.file.DataFileReader;
import org.apache.avro.generic.GenericDatumReader;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.io.DatumReader;

import java.io.File;

public class AvroDeserializer {
public static void main(String[] args) throws Exception {
File file = new File("example.avro");
Schema schema = new Schema.Parser().parse(new File("schema.avsc"));

DatumReader<GenericRecord> datumReader = new GenericDatumReader<>(schema);
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<>(file, datumReader);

for (GenericRecord record : dataFileReader) {
// 驗證記錄是否符合模式
if (isValid(record)) {
// 處理記錄
} else {
throw new SecurityException("數(shù)據(jù)格式無效");
}
}
}

private static boolean isValid(GenericRecord record) {
// 在此處實現(xiàn)您的驗證邏輯
return true;
}
}

3. 使用安全的反序列化庫

考慮使用提供額外保護層以防止 RCE 攻擊的安全反序列化庫。例如,Jackson 庫提供了 `@JsonTypeInfo` 和 `@JsonSubTypes` 等功能來控制反序列化。

4. 實施輸入清理

在反序列化之前對輸入數(shù)據(jù)進行清理,以刪除潛在的惡意內(nèi)容。這有助于防止執(zhí)行未經(jīng)授權(quán)的代碼。

5. 監(jiān)控和記錄反序列化事件

實施日志記錄和監(jiān)控反序列化事件,以便及時發(fā)現(xiàn)任何可疑活動。

6. 使用安全掃描器

定期使用安全掃描器和工具來識別應(yīng)用程序及其依賴項中的漏洞。

使用 Jackson 進行安全反序列化的示例:

java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;

public class SecureDeserializer {
public static void main(String[] args) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder()
.allowIfBaseType(Object.class)
.build();
objectMapper.activateDefaultTyping(ptv, ObjectMapper.DefaultTyping.NON_FINAL);

// 安全地反序列化數(shù)據(jù)
MyObject obj = objectMapper.readValue(jsonString, MyObject.class);
}
}

通過遵循這些實踐,可以降低使用 Apache Avro 的 Java 應(yīng)用程序中遠程代碼執(zhí)行漏洞的風(fēng)險。

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2023-12-14 16:20:09

2024-11-11 16:21:38

2017-10-12 06:42:16

Tomcat代碼漏洞

2015-04-30 08:11:40

2024-10-12 14:36:34

2021-07-01 13:22:11

遠程代碼零日漏洞微軟

2020-10-08 13:44:27

漏洞

2014-09-12 17:47:36

2013-11-01 14:26:13

2013-01-21 11:04:07

2020-10-19 14:01:34

漏洞Linux代碼

2021-12-30 08:36:13

漏洞Apache服務(wù)器

2016-03-15 21:12:44

2025-03-06 16:38:19

2021-07-29 15:57:11

任意代碼漏洞攻擊

2009-05-31 15:34:37

2021-11-08 11:52:17

漏洞LinuxLinux TIPC

2017-06-15 17:28:36

2022-08-15 08:28:52

漏洞底層框架Electron

2017-06-14 10:02:22

點贊
收藏

51CTO技術(shù)棧公眾號