Spring Security (Spring Security 4.1.x before 4.1.5, 4.2.x before 4.2.4, and 5.0.x before 5.0.1; and Spring Framework 4.3.x before 4.3.14 and 5.0.x before 5.0.3) does not consider URL path parameters when processing security constraints. By adding a URL path parameter with special encodings, an attacker may be able to bypass a security constraint. The root cause of this issue is a lack of clarity regarding the handling of path parameters in the Servlet Specification. Some Servlet containers include path parameters in the value returned for getPathInfo() and some do not. Spring Security uses the value returned by getPathInfo() as part of the process of mapping requests to security constraints. In this particular attack, different character encodings used in path parameters allows secured Spring MVC static resource URLs to be bypassed.

Affected Software

CPE Name Name Version
vmware:spring_framework vmware spring framework 5.0.3
vmware:spring_security vmware spring security 4.1.5
vmware:spring_security vmware spring security 4.2.4
vmware:spring_security vmware spring security 5.0.1
vmware:spring_framework vmware spring framework 4.3.14
redhat:fuse redhat fuse 1.0
oracle:retail_xstore_point_of_service oracle retail xstore point of service 7.1
oracle:rapid_planning oracle rapid planning 12.1
oracle:rapid_planning oracle rapid planning 12.2