1、Spring Security 身份认证绕过漏洞(CVE-2022-22978)
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。
Spring Security存在身份认证绕过漏洞 ,当Spring Security中使用RegexRequestMatcher进行权限配置,且规则中使用带点号的正则表达式时,未经授权的远程攻击者可通过构造恶意数据包绕过身份认证,导致配置的权限验证失效。
处理流程如下:
第一步:IDEA新建mvn指令,查询jar包结构
【spring-boot-starter-security版本是继承spring-boot-dependencies的版本】
第二步:因为我们当前boot版本是2.5.7
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.7</version>
<relativePath/>
</parent>
第三步:spring-security-web的jar包是基于如下pom的
<!-- spring security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
第四步:我们直接将如下pom引用注释,强制新增如下pom引用:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.6.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
<version>5.6.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.6.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.6.4</version>
</dependency>
2、FastJSON<=1.2.80 反序列化漏洞(CVE-2022-25845)
FastJSON是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点,应用范围广泛。
FastJSON 存在反序列化远程代码执行漏洞,漏洞成因是Fastjson autoType开关的限制可被绕过,然后反序列化有安全风险的类。攻击者利用该漏洞可实现在目标机器上的远程代码执行。
处理流程如下:
直接将之前版本换成83版本,调试即可
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<!-- <version>1.2.47</version>-->
<version>1.2.83</version>
</dependency>
3、Apache Commons Text 远程代码执行漏洞(CVE-2022-42889)
Apache Commons Text 是一个专注于字符串算法的库。
Apache Commons Text 存在远程代码执行漏洞,Apache Commons Text 执行变量插值,允许动态评估和扩展属性。在1.5到1.9版本中,包括一些默认的插值器,如果使用不受信任的配置值,则在受影响版本中使用插值默认值的应用程序可能容易受到远程代码执行的攻击。
处理流程如下:
第一步:查询jar包关联
第二步:需要升级成1.10,即对opencsv版本进行升级
第三步:升级opencsv版本后测试导入功能,正常即可
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<!-- <version>5.4</version>-->
<version>5.7.1</version>
</dependency>