SpringFramework是否使用来自commons.collections的InvokerTransformer?

时间:2015-11-12 07:27:43

标签: spring serialization deserialization

昨天宣布了反序列化漏洞(CVE-2015-4852):

https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread

SpringFramework使用commons.collections。

如果SpringFramework使用InvokerTransformer,它可能容易受到反序列化漏洞(CVE-2015-4852)的攻击。<​​/ p>

问题是SpringFramework使用来自commons.collections的InvokerTransformer吗?

2 个答案:

答案 0 :(得分:4)

第3。更新:这是JürgenHöller对我Jira issues的回答:

  

Spring Framework不以任何方式使用Commons Collections。如果你   在你的类路径上有它,它可能只是在另一个依赖项后面   您选择的,例如OpenJPA。

     

尽管如此,我们确实在SPR-13656中遇到过相关问题   修复我们的一类,以防止在这种情况下的滥用。   请注意,这仅在您公开基于序列化的情况下才有意义   端点到不受信任的客户端。春天没有做任何这样的曝光   默认情况下;这是你的应用程序明确的东西   选择使用HTTP Invoker或RMI Invoker。

     

尔根

<强> 2。更新:Spring Framework版本4.2.3和4.1.9 aren't vulnerable到相关问题。

我搜索了spring-framework项目,到目前为止没有找到org.apache.commons.collections.(Transformer|InvokerTransformer|MapTransformer)的任何用途。 这并不意味着一些Spring子项目使用InvokerTransformer

快速搜索jira.spring.io并未发现任何问题:

https://jira.spring.io/issues/?jql=text%20~%20%22invoketransformer%22

https://jira.spring.io/issues/?jql=text%20~%20%22CVE-2015-4852%22

也许Pivotal官员可以澄清这一点。

更新:我提交了Jira issues

答案 1 :(得分:1)

我认为这个问题不是正确的。

这个CVE的好问题是: 是类路径中的apache commons集合吗? (更具体地说是InvokerTransformer)

如果答案是肯定的,那么只要应用程序从任何类型的不安全来源反序列化对象,应用程序就会非常容易受到攻击。

如果答案是否定的,那么应用程序不容易受到Invokertransformer CVE的攻击,但是如果它仍然在没有经过适当检查的情况下从不受信任的来源反序列化对象,那么它仍然可能容易受到其他类型的攻击。<​​/ p>

问题主要来自序列化和反序列化的能力......所以InvokerTransformer只是不安全实践冰山的可见部分。尽管如此,这是一个大而简单的打击。

序列化版本未受控制时反序列化对象意味着解压缩魔术框