Apache Avro SDK曝关键漏洞,可在Java中执行任意代码

  发布时间:2025-12-07 19:59:42   作者:玩站小弟   我要评论
Apache Avro Java软件开发工具包SDK)中披露了一个关键安全漏洞,如果成功利用,可以在易受攻击的实例上执行任意代码。该漏洞编号为CVE-2024-47561,影响1.11.4之前版本的所 。

Apache Avro Java软件开发工具包(SDK)中披露了一个关键安全漏洞,关键如果成功利用  ,漏洞可以在易受攻击的中执行实例上执行任意代码 。该漏洞编号为CVE-2024-47561  ,任意影响1.11.4之前版本的代码所有软件 。Databricks安全团队的关键Kostya Kortchinsky被发现并报告了这个安全缺陷 。

Apache Avro与谷歌的漏洞Protocol Buffers(protobuf)类似 ,是中执行一个为大规模数据处理提供语言中立的建站模板数据序列化框架的开源项目  ,提供紧凑 、任意快速且高效的代码数据格式。它在大数据处理、关键分布式系统和云计算中被广泛使用 。漏洞项目维护者发布公告称 ,中执行“Apache Avro 1.11.3及之前版本的任意Java SDK中的模式解析允许恶意行为者执行任意代码,建议用户升级到1.11.4或1.12.0版本,源码下载代码这些版本修复了此问题 。”

Avro团队进一步指出,如果应用程序允许用户提供自己的Avro模式进行解析 ,则该漏洞会影响任何应用程序  。

“CVE-2024-47561影响Apache Avro 1.11.3及之前版本,在通过avroAvro模式反序列化接收到的输入时。处理来自威胁行为者的此类输入会导致代码执行  。根据我们的威胁情报报告,高防服务器没有公开的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>1.2.3.4.5.6.7. 2. 验证输入数据

在反序列化任何数据之前,请根据预定义的模式对其进行验证 ,或使用白名单方法确保只处理预期的免费模板数据格式 。

复制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("数据格式无效"); } } } private static boolean isValid(GenericRecord record) { // 在此处实现您的验证逻辑 return true; } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32. 3. 使用安全的反序列化库

考虑使用提供额外保护层以防止 RCE 攻击的安全反序列化库。例如,Jackson 库提供了 `@JsonTypeInfo` 和 `@JsonSubTypes` 等功能来控制反序列化  。

4. 实施输入清理

在反序列化之前对输入数据进行清理,以删除潜在的恶意内容。这有助于防止执行未经授权的服务器租用代码 。

5. 监控和记录反序列化事件

实施日志记录和监控反序列化事件 ,以便及时发现任何可疑活动。

6. 使用安全扫描器

定期使用安全扫描器和工具来识别应用程序及其依赖项中的漏洞。

使用 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); // 安全地反序列化数据 MyObject obj = objectMapper.readValue(jsonString, MyObject.class); } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

通过遵循这些实践,可以降低使用 Apache Avro 的 Java 应用程序中远程代码执行漏洞的风险。

  • Tag:

相关文章

  • Forrester:攻击面管理(ASM)不仅是一种工具

    当2021年12月Log4j漏洞被曝出并带来广泛影响时,越来越多的企业开始意识到IT资产可见性的重要性。由于影子IT、并购和第三方/合作伙伴的活动,组织通常不了解其资产状况,安全团队和IT团队努力实现
    2025-12-07
  • win10旗舰版死机怎么解决

    我们在使用win10操作系统的时候,有些情况下可能因为一些系统的问题或者是人为操作的问题引起了系统死机卡住的情况。对于win10旗舰版死机这种问题,小编觉得我们可以先排除一下是系统硬件问题还是软件问题
    2025-12-07
  • 华为台灯电脑支架安装教程(一步步教您如何安装华为台灯电脑支架)

    华为台灯电脑支架是一款方便实用的产品,通过安装在台灯上,可以将电脑屏幕提升到合适的高度,舒适地进行办公或学习。本文将为您详细介绍如何正确安装华为台灯电脑支架,让您轻松享受高效的办公环境。确认安装工具准
    2025-12-07
  • win10 U盘安装找不到驱动

    win10系统以其稳定性和良好的兼容性一直深受大家的喜爱,很多小伙伴安装的时候发现找不到安装的驱动,该如何安装,今天小编带来了win10 U盘安装驱动使用及安装步骤,具体的解决方法下面一起来看看吧。w
    2025-12-07
  • 将强制实施多重身份验证!AWS 2024年最新举措公布

    近日,亚马逊网络服务公司AWS)表示,到2024年年中起,将要求所有特权账户使用多因素身份验证MFA),以提高默认安全性并降低账户被劫持的风险。首席安全官Steve Schmidt表示,任何以 AWS
    2025-12-07
  • win10防火墙白名单怎么设置

    在使用电脑的过程中我们慢慢会发现一些软件因为防火墙的原因无法进行正常的使用,由于软件与防火墙冲突的原因自有在关闭防火墙的状态下才能正常使用软件但是关闭防火墙后又会使电脑失去防护,要怎么才能让软件正常使
    2025-12-07

最新评论