【问题标题】:Does SpringFramework use InvokerTransformer from commons.collections?SpringFramework 是否使用 commons.collections 中的 InvokerTransformer?
【发布时间】:2015-11-12 07:27:42
【问题描述】:

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

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

SpringFramework 使用 commons.collections。

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

SpringFramework 是否使用 commons.collections 中的 InvokerTransformer?

【问题讨论】:

  • 你试过grepping源代码吗?
  • 我将下载源代码并对其进行 grep。可能有人已经有代码并且可以 grep :)
  • Spring Framwork 中的任何内容是否反序列化用户提供的序列化对象不是更重要的问题吗?此时,如果 commons-collection 存在(因为精心设计的 vuln 使用 InvokerTransform)并且 Spring 被提供了一个序列化对象,那么您将处于危险之中。
  • 在我的回答中添加了第三个更新:Spring 不使用 InvokeTransformer

标签: spring serialization deserialization


【解决方案1】:

3.更新:这是 Jürgen Höller 对我的Jira issues 的回答:

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

也就是说,我们确实在 SPR-13656 中遇到了一个相关问题 修复我们的一类,以防止在这种情况下滥用。 请注意,这仅在您公开基于序列化的情况下才重要 到不受信任的客户端的端点。 Spring 不会进行任何此类曝光 默认情况下;它是你的应用程序明确的东西 通过使用 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。

【讨论】:

    【解决方案2】:

    我认为这个问题不正确。

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

    如果答案是肯定的,那么一旦应用程序反序列化来自任何类型的不安全来源的对象,它肯定是易受攻击的。

    如果答案是否定的,则应用程序不容易受到 Invokertransformer CVE 的攻击,但如果它仍然在没有适当检查的情况下反序列化来自不受信任来源的对象,它仍然可能容易受到其他类型的黑客攻击。

    问题主要来自序列化和反序列化的能力......所以 InvokerTransformer 只是不安全做法的冰山中可见的部分。不过,那是一个大而简单的打击。

    在序列化版本不受控制时反序列化对象意味着解包魔法盒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 2020-03-13
      相关资源
      最近更新 更多