日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Spring淪陷了!這樣的標題這幾天是不是看膩了?然而,仔細看看都是拿著之前的幾個毫不相干的CVE來大吹特吹。所以,昨天發(fā)了一篇關(guān)于最近網(wǎng)傳的Spring大漏洞的文章,聊了聊這些讓人迷惑的營銷文、以及提醒大家不要去下載一些利用漏洞提供補丁的釣魚內(nèi)容。而對于這個網(wǎng)傳的漏洞,依然保持關(guān)注狀態(tài),因為確實可能存在,只是沒有官宣。

就在不久前(3月31日晚),Spring社區(qū)發(fā)布了一篇名為《Spring Framework RCE, Early Announcement》的文章,官宣了最近網(wǎng)傳的Spring漏洞。證實了網(wǎng)傳漏洞確實存在,并且并非最近很多文章說提到的3月28、29日公布的CVE,如果你是照著那些文章解決問題的話,請根據(jù)這次官宣內(nèi)容重新來過吧。

這次確定的Spring核心框架中的RCE漏洞,CVE號為CVE-2022-22965。

Spring官宣網(wǎng)傳大漏洞,附解決方案

 

這個漏洞是在周二深夜,由AntGroup FG的codePlutos,meizjm3i向VMware報告。周三,Spring官方對該問題進行了調(diào)查、分析并確定了解決方案,同時計劃在周四進行緊急版本的發(fā)布

由于該漏洞被泄漏在網(wǎng)絡(luò)上,所以Spring官方緊急發(fā)布了相關(guān)修復的版本,因為是Spring核心框架中的漏洞,所以涉及面較廣。所以在這篇博文中也是在不斷的持續(xù)更新進展,下面截止到本文發(fā)稿的進展時間線:

Spring官宣網(wǎng)傳大漏洞,附解決方案

 

下面就來一起看看這個被網(wǎng)傳了2天的神秘漏洞的官宣內(nèi)容和解決方案。

影響范圍

該漏洞的利用需要滿足下面的條件:

  • JDK 9 +
  • 使用Apache Tomcat部署
  • 使用WAR方式打包
  • 依賴spring-webmvc或spring-webflux

雖然可能國內(nèi)大部分用戶還在用JDK 8、或者采用內(nèi)置Tomcat的方式運行,但由于該漏洞的特性比較普遍,不排除其他利用方式的存在。所以,DD還是建議在有條件的情況下,盡快升到最新版本來避免可能存在的風險發(fā)生。

解決方案

因為這次不是網(wǎng)傳,而是Spring官宣,所以解決方案已經(jīng)相對完善和容易了,受影響的用戶可以通過下面的方法解決該漏洞的風險:

  • Spring 5.3.x用戶升級到5.3.18+
  • Spring 5.2.x用戶升級到5.2.20+
  • Spring Boot 2.6.x用戶升級到2.6.6+
  • Spring Boot 2.5.x用戶升級到2.5.12+

對于該漏洞的復現(xiàn)及更多細節(jié),因為篇幅有限,這里就不具體介紹了,感興趣的小伙伴可以關(guān)注公眾號程序猿DD,回復“CVE-2022-22965”,獲取更深入的解析文檔。

然后,這里需要特別再提一下,之前已經(jīng)收到消息并有所行動的小伙伴,沒猜錯的話應該都是用下面的解決方案來處理的吧?

@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE)
public class BinderControllerAdvice {

    @InitBinder
    public void setAllowedFields(WebDataBinder dataBinder) {
         String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
         dataBinder.setDisallowedFields(denylist);
    }

}

這個方法DD在微信群里(點擊加群)也看到蠻多次了。這次Spring官方推文里,證實了該方法是有效的,但可能會留下一些其他隱患,特別是當Controller通過其自己的@InitBinder方法在本地設(shè)置disalloedFields時,該方法會覆蓋全局設(shè)置。

為了以更安全的方式應用解決方案,應用程序可以擴展RequestMAppingHandlerAdapter,以便在所有其他初始化結(jié)束后更新WebDataBinder。官方給出了更好的解決方案,比如下面這樣:

@SpringBootApplication
public class MyApp {

 public static void main(String[] args) {
  SpringApplication.run(CarApp.class, args);
 }


 @Bean
 public WebMvcRegistrations mvcRegistrations() {
  return new WebMvcRegistrations() {
   @Override
   public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() {
    return new ExtendedRequestMappingHandlerAdapter();
   }
  };
 }


 private static class ExtendedRequestMappingHandlerAdapter extends RequestMappingHandlerAdapter {

  @Override
  protected InitBinderDataBinderFactory createDataBinderFactory(List<InvocableHandlerMethod> methods) {

   return new ServletRequestDataBinderFactory(methods, getWebBindingInitializer()) {

    @Override
    protected ServletRequestDataBinder createBinderInstance(
      Object target, String name, NativeWebRequest request) throws Exception {
     
     ServletRequestDataBinder binder = super.createBinderInstance(target, name, request);
     String[] fields = binder.getDisallowedFields();
     List<String> fieldList = new ArrayList<>(fields != null ? Arrays.asList(fields) : Collections.emptyList());
     fieldList.addAll(Arrays.asList("class.*", "Class.*", "*.class.*", "*.Class.*"));
     binder.setDisallowedFields(fieldList.toArray(new String[] {}));
     return binder;
    }
   };
  }
 }
}

對于不是Spring Boot應用下的Spring MVC用戶,可以直接從@EnableWebMvc切換到擴展DelegatingWebMvcConfiguration,如文檔的高級配置部分所述[3],然后重寫createRequestMappingHandlerAdapter方法來實現(xiàn)。

參考資料

[1] https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

[2] https://tanzu.vmware.com/security/cve-2022-22965

[3] https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-config-advanced-JAVA

分享到:
標簽:Spring
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定