JeeSite 微信公众号,当天群发次数已经用完了,临时在博客里公告该信息
漏洞详情
2022年3月31日,Spring官方发布安全公告,披露CVE-2022-22965 Spring Framework 远程代码执行漏洞。由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。
官方公告:https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
我受影响了吗?
已经证实的场景条件的报告:
-
JDK 9 或更高版本
-
使用 Apache Tomcat 作为 Servlet 容器
-
打包为传统的 WAR 方式
-
spring-webmvc 或 spring-webflux 依赖
-
Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本
但是,该漏洞的性质更为普遍,可能还有其他尚未报告的利用方法,如果不符合上面的条件,也建议大家修复。
修复建议
截止2022年3月31日,官方已发布安全版本修复该漏洞:
-
包含修复的 Spring Framework 5.3.18 和 5.2.20 已发布
-
依赖 Spring Framework 5.3.18 的 Spring Boot 2.6.6 和 2.5.12 已经发布。
(1)修复措施
在2022年3月30日,我们已对JeeSite所有版本进行了升级,并添加 dataBinder.setDisallowedFields 过滤方法,可以解决该问题。
执行以下命令,重新打包部署项目,获取最新jeesite依赖:
cd web
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
注意:不建议你自己添加 setDisallowedFields 过滤字符串,因为 JeeSite 本身还有一些字符过滤,自己添加可能会覆盖本身自带的一些过滤参数。
(2)WAF 防护
在 WAF 等网络防护设备上,根据实际部署业务的流量情况,实现对"class.*", "Class.*", "*.class.*", "*.Class.*"等字符串的规则过滤,并在部署过滤规则后,对业务运行情况进行测试,避免产生额外影响。
点击“原文”看Spring官方公告