Spring Security AuthenticatedVoter 错误访问控制漏洞复现(CVE-2024-22257)
来源: 0xOctober
文章作者: 0xOctober
文章链接: https://blog.csdn.net/m0_50797689/article/details/136837122
免责声明 由于传播、利用本站所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!
一、产品介绍
Spring Security 是基于Spring应用程序的认证和访问控制框架。
二、漏洞描述
Spring Security在处理Authentication参数时没有对null值进行检查,当应用程序直接使用AuthenticatedVoter#vote方法,传入null作为认证参数时会错误地返回true值,攻击者可利用该漏洞绕过身份验证,进行提权或窃取系统敏感信息。
三、漏洞危害
可能导致身份验证和授权绕过、未授权访问、信息泄露等。
四、影响版本
6.2.0 <= Spring Security <= 6.2.2
6.1.0 <= Spring Security <= 6.1.7
6.0.0 <= Spring Security <= 6.0.9
5.8.0 <= Spring Security <= 5.8.10
5.7.0 <= Spring Security <= 5.7.11
五、漏洞复现
环境搭建
pom.xml
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>6.1.4</version>
</dependency>
AuthenticatedVoter voter = new AuthenticatedVoter();
List<ConfigAttribute> def = SecurityConfig.createList(AuthenticatedVoter.IS_AUTHENTICATED_REMEMBERED);
int vote = voter.vote(null, null, def);
System.out.println(vote);
测试
六、修复建议
1、请使用该产品的用户尽快更新至安全版本。