<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    補丁發布!Spring Framework 遠程代碼執行漏洞

    VSole2022-03-31 20:56:43

    0x01事件概述

    360漏洞云近日監測到Spring框架中存在一個嚴重的遠程代碼執行漏洞,該漏洞影響Jdk 9.0以上版本的Spring框架及其衍生框架,包括但不限于Spring Cloud、Spring Boot等。此漏洞利用方式簡單,危害嚴重,Spring官方已針對此漏洞發布新版本,建議用戶盡快升級版本或采取其他防護措施,避免受到該漏洞的攻擊。

    漏洞細節

    漏洞POC

    漏洞EXP

    在野利用

    公開

    公開

    公開

    存在

    0x02漏洞描述

    Spring框架(Framework)是一個開源的輕量級J2EE應用程序開發框架,提供了IOC、AOP及MVC等功能,解決了程序人員在開發中遇到的常見問題,提高了應用程序開發便捷度和軟件系統構建效率。     

    Spring框架或其衍生框存在一個嚴重的遠程代碼執行漏洞,由于Spring框架存在處理流程缺陷,攻擊者可在遠程條件下,實現對目標主機的后門文件寫入和配置修改,繼而通過后門文件訪問獲得目標主機權限。使用Spring框架或衍生框架構建網站等應用,且同時使用JDK版本在9及以上版本的,易受此漏洞攻擊影響。

    經 360 漏洞云安全專家研判,Spring是當今使用最為廣泛的 J2EE 框架Spring 及其衍生框架的全球部署數量超千萬,排名靠前的國家為中國和美國。受漏洞影響的是 Spring Framework,任何引用Spring Framework的框架均受此漏洞影響。包括但不限于 Spring Boot、Spring Cloud、Spring Data、Spring Security等。這些框架的用戶涵蓋了政府、銀行、醫院、學校、電商等眾多部門和行業。由于此漏洞利用方式簡單,受漏洞影響的服務發布廣泛,漏洞影響極其嚴重。

    Spring Framework 遠程代碼執行漏洞

    漏洞編號

    CVE-2022-22965

    漏洞類型

    遠程代碼執行

    漏洞等級

    嚴重(10.0)

    公開狀態

    已公開

    在野利用

    存在

    漏洞描述

    Spring Framework存在遠程代碼執行漏洞,在 JDK 9 及以上版本環境下,遠程攻擊者可利用該漏洞寫入惡意代碼導致遠程代碼執行漏洞。引用Spring框架的Spring衍生框架均受此漏洞影響。

    0x03影響版本

    • Spring Framework 5.3.X < 5.3.18
    • Spring Framework 5.2.X < 5.2.2 

    且所在運行環境為JDK9及以上版本

    0x04排查方法

    1. JDK 版本號排查

    在業務系統的運行服務器上,執行“java -version”命令查看運 行的 JDK 版本,如果版本號小于等于 8,則不受漏洞影響。

    1. Spring 框架使用情況排查

    1. 如果業務系統項目以 war 包形式部署,按照如下步驟進行判斷。

    • 解壓 war 包:將 war 文件的后綴修改成.zip ,解壓 zip 文件
    • 在解壓縮目錄下搜索是否存在 spring-beans-.jar 格式的 jar 文 件(例如 spring-beans-5.3.16.jar),如存在則說明業務系統使用了 spring 框架進行開發。
    • 如果 spring-beans-.jar 文件不存在,則在解壓縮目錄下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在則說明業 務系統使用了 Spring 框架開發。

    2. 如果業務系統項目以 jar 包形式直接獨立運行,按照如下步驟進行 判斷。

    • 解壓 jar 包:將 jar 文件的后綴修改成.zip,解壓 zip 文件。
    • 在解壓縮目錄下搜索是否存在 spring-beans-.jar 格式的 jar 文件 (例如 spring-beans-5.3.16.jar),如存在則說明業務系統使用了 spring 框架進行開發。
    • 如果 spring-beans-.jar 文件不存在,則在解壓縮目錄下搜索 CachedIntrospectionResuLts.class 文件是否存在,如存在則說明業 務系統使用了 spring 框架進行開發。

    0x05漏洞復現

    2022年3月30日,360漏洞云安全專家已第一時間復現上述漏洞,演示如下:

    CVE-2021-22965

    完整POC代碼已在360漏洞云情報平臺(https://loudongyun.#/)發布,360漏洞云情報平臺用戶可通過平臺下載進行安全自檢。

    0x06修復建議

    官方修復建議

    目前,Spring官方已經在5.2.205.3.18版本修復上述漏洞,用戶請及時升級到安全版本。

    https://github.com/spring-projects/spring-framework/tags

    臨時修復建議

    1. 使用WAF緩解

    用戶請根據實際部署業務的流量情況,在WAF或其他網絡防護設備上實現對"classLoader.","class.module.*","class.","Class.",".class.",".Class.", 等字符串的規則過濾,請注意其中流量特征 "class.module.*" 對大小寫不敏感。用戶注意在部署規則后,對業務允許情況進行測試,避免產生額外影響。

    1. 其他臨時緩解措施

    全局搜索 @InitBinder注解,判斷方法體內是否有dataBinder.setDisallowedFields方法,如果有使用則在原來的黑名單中添加:{"class.","Class.",".class.",".Class."} (注:如果此代碼片段使用較多,需要每個地方都追加)

    在應用系統的項目包下新建以下全局類,并保證這個類被Spring 加載到(推薦在Controller 所在的包中添加)。完成類添加后,需對項目進行重新編譯打包和功能驗證測試。并重新發布項目。

    import org.springframework.core.annotation.Order;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.InitBinder;@ControllerAdvice@Order(10000)public class GlobalControllerAdvice{   @InitBinder    public void setAllowedFields(webdataBinder dataBinder){    String[]abd=new string[]{"class.","Class.",".class.",".Class."};    dataBinder.setDisallowedFields(abd);    }}
    

    與此同時,請做好資產自查以及預防工作,以免遭受黑客攻擊。

    遠程代碼執行漏洞spring框架
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Spring framework 是Spring 里面的一個基礎開源框架,其目的是用于簡化 Java 企業級應用的開發難度和開發周期,2022年3月31日,VMware Tanzu發布漏洞報告,Spring Framework存在遠程代碼執行漏洞,在 JDK 9+ 上運行的 Spring MVC 或 Spring WebFlux 應用程序可能容易受到通過數據綁定的遠程代碼執行 (RCE) 的攻擊
    360漏洞云近日監測到Spring框架中存在一個嚴重的遠程代碼執行漏洞,該漏洞影響Jdk 9.0以上版本的Spring框架及其衍生框架,包括但不限于Spring Cloud、Spring Boot等。
    雖說是 Spring 框架漏洞,但以下包含并不僅 Spring Framework,Spring Boot,還有 Spring Cloud,Spring Data,Spring Security 等。
    雖說是 Spring 框架漏洞,但以下包含并不僅 Spring Framework,Spring Boot,還有 Spring Cloud,Spring Data,Spring Security 等。 CVE-2010-1622 Spring Framework class.classLoader 類遠程代碼執行 影響版本:SpringSource Spring Framework 3.0.0
    Spring框架是一個開放源代碼的J2EE應用程序框架,是針對bean的生命周期進行管理的輕量級容器。Spring可以單獨應用于構筑應用程序,也可以和Struts、Webwork、Tapestry等眾多Web框架組合使用,并且可以與 Swing等桌面應用程序AP組合。 Spring框架主要由七部分組成,分別是 Spring Core、 Spring AOP、 Spring ORM、 Spring
    Spring Framework、5.0.5 之前的 5.0.x 版本和 4.3.16 之前的 4.3.x 版本以及不支持的舊版本允許應用程序通過spring-messaging模塊通過簡單的內存 STOMP 代理通過 WebSocket 端點公開 STOMP 。惡意用戶(或攻擊者)可以向代理發送可能導致遠程代碼執行攻擊的消息。
    Spring的英文翻譯為春天,可以說是給Java程序員帶來了春天,因為它極大的簡化了開發。
    Web安全常見漏洞修復建議
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类