天天看點

xfire1.2.6更新Spring版本

今天收到上司的郵件,關于Spring架構中存在多個安全漏洞預警的通知。漏洞描述

CV E-2018-1270漏洞:Spring Fram ework的5.*版本、4.3.*版本以及不再支援的舊版本,通過spring-m essaging和spring-websocket子產品提供的基于W ebSocket的STO M P,攻擊者可以通過建立W ebSocket連接配接并發送一條消息造成遠端代碼執行,進而實作遠端代碼執行攻擊。

CV E-2018-1271漏洞:Spring Fram ework的5.*版本、4.3.*版本以及不再支援的舊版本,SpringM V C允許應用程式對其配置提供靜态資源,在W indows系統上實作該功能時,攻擊者通過請求構造的特定資源U RL,可能導緻目錄周遊的效果産生。

CV E-2018-1272漏洞:Spring Fram ework的5.*版本、4.3.*版本以及不再支援的舊版本,當SpringM V C或Spring W ebFlux伺服器接受把用戶端請求再轉向另一台伺服器的場景下,攻擊者通過構造和污染M ultipart類型請求,可能對另一台伺服器實作權限提升攻擊。

漏洞相關的技術細節和驗證程式已經公開,且漏洞相關PoC已經公開并證明可用,可能構成巨大的現實威脅。

1、受影響版本:

Spring Framework 5.0 to 5.0.4.

SpringFramework 4.3 to 4.3.14

已不支援的舊版本仍然受影響

2、處置建議

更新更新檔:

5.0.x 使用者更新到5.0.5版本

4.3.x 使用者更新到4.3.15版本 

已不支援的舊版本,建議更新到4.3.15版本或5.0.5版本。

于是就開始Spring更新的苦逼之路,其他項目還算順利但是到xfire服務時出問題,在這個接口服務中引用了spring-1.2.6.jar不知道這個是不是也需要更新呢不管三七二十一開幹,中間有很多問題,在最大程度上保持代碼不動的前提下,做了以下更改,直接上操作步驟。

将項目下的spring-1.2.6.jar删除引入如下jar檔案:

xfire1.2.6更新Spring版本

問題一: Configuration problem: Old 1.x 'singleton' attribute in use - upgrade to 'scope

xfire1.2.6更新Spring版本

解決方式:修改xfire-spring-1.2.6.jar包中org/codehaus/xfire/spring/xfire.xml配置檔案中

xfire1.2.6更新Spring版本

所有singleton="true"改成scope="singleton"。修改方式直接用壓縮檔案打開jar檔案找到檔案修改并儲存。 問題二: Unrecognized xbean element mapping:beans in namespace http://xfire.codehaus.org/config/1.0

xfire1.2.6更新Spring版本

修改xfire配置檔案services.xml

xfire1.2.6更新Spring版本

修改後:

xfire1.2.6更新Spring版本

問題三: cannot convert value of type 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor' to .....

xfire1.2.6更新Spring版本

解決方式:修改修改xfire-spring-1.2.6.jar包中org/codehaus/xfire/spring/customEditors.xmll配置檔案:

xfire1.2.6更新Spring版本

修改後:

xfire1.2.6更新Spring版本

 檢視源碼可以發現customEditors的類型,在spring2.0 中是Map類型,key和value的類型并不确定,但是底層處理的時候,key的類型必須是Class類型,而value是一個注入的bean;在spring4.0中,customEditors的類型變為了Map<Class<?>, Class<? extends PropertyEditor>>, 也就是說,key和value的類型已經确定為Class類型。 參考: https://blog.csdn.net/xinyoulin/article/details/52315810 最後成功啟動項目。