CVE-2016-2173 Spring AMQP 中的远程代码执行漏洞

严重 | 2016 年 4 月 11 日 | CVE-2016-2173

描述

类 org.springframework.core.serializer.DefaultDeserializer 不会根据白名单验证反序列化的对象。通过提供精心设计的序列化对象(如 Chris Frohoff 的 Commons Collection gadget),可以实现远程代码执行。

受影响的 Spring 产品和版本

  • 1.0.0 到 1.5.4

缓解措施

受影响版本的用户应采取以下缓解措施

  • 引用的类 (DefaultDeserializer) 不会被任何 Spring 应用程序上下文自动注册;当使用此类处理来自不受信任来源的对象时,用户应像直接使用 ObjectInputStream 时一样小心。
  • Spring AMQP 有一个(可选)消息转换器,可以使用此反序列化器;从 1.5.5 版本开始,该转换器现在可以使用可反序列化的可接受包/类的白名单进行配置。
  • Spring AMQP 还有一个默认配置的 SimpleMessageConverter;它不使用反序列化器,但在内部使用 ObjectInputStream;它现在也可以配置包/类的白名单。
  • 建议用户在使用 RabbitMQ 的环境中,如果可能收到不受信任的数据,则不要使用 Java 序列化;如果使用,则应使用允许的对象配置转换器。
  • 可能暴露于此漏洞的用户应升级到 Spring AMQP 1.5.5 或更高版本,并配置白名单。

鸣谢

该漏洞由 Code White 的 Matthias Kaiser 发现 (www.code-white.com)

参考

历史

2016-Apr-11:发布初始漏洞报告。

抢先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部