Skip to content

Latest commit

 

History

History
44 lines (41 loc) · 1.42 KB

CVE-2022-22965.md

File metadata and controls

44 lines (41 loc) · 1.42 KB

CVE-2022-22965

漏洞说明

在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击。具体的利用需要应用程序作为 WAR 部署在 Tomcat 上运行。如果应用程序被部署为 Spring Boot 可执行 jar,即默认值,则它不易受到漏洞利用。但是,该漏洞的性质更为普遍,可能还有其他方法可以利用它。

时间:2022-03-31

先决条件:

  • JDK 9+
  • Apache Tomcat 作为 Servlet 容器
  • 打包为 WAR
  • spring-webmvc 或 spring-webflux 依赖项

影响框架、版本:

  • Spring Framework
    • 5.3.0 to 5.3.17
    • 5.2.0 to 5.2.19
    • Older, unsupported versions are also affected

官方修复意见:

  • Spring Framework
    • 5.3.18+
    • 5.2.20+
  • 升级 Tomcat
    • 10.0.20、9.0.62或8.5.78
  • 降级到 Java 8
  • 不允许的字段
@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);
    }
}

本地复现截图

CVE-2022-22965.png