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 社群中所有即將舉行的活動。

檢視全部