Spring Security 安全公告

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

严重 | 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年4月11日:发布初始漏洞报告。

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部