Medium · published August 28, 2026
Several components in Spring Security compare security-sensitive values using standard string equality (String.equals()) rather than a constant-time comparison. Because String.equals() returns as soon as it finds a differing character, the time taken to reject an incorrect value is proportional to the number of leading characters that match the expected value.
Spring Security 7.1.0
Spring Security 7.0.0 - 7.0.6
Spring Security 6.5.0 - 6.5.11
Spring Security 6.4.0 - 6.4.18
Spring Security 5.8.0 - 5.8.27
Spring Security 5.7.0 - 5.7.25
| Product | Versions | Fixed in |
|---|---|---|
| vmware/spring_security | ≥ 5.7.0, < 5.7.26 | 5.7.26 |
| vmware/spring_security | ≥ 5.8.0, < 5.8.28 | 5.8.28 |
| vmware/spring_security | ≥ 6.4.0, < 6.4.19 | 6.4.19 |
| vmware/spring_security | ≥ 6.5.0, < 6.5.12 | 6.5.12 |
| vmware/spring_security | ≥ 7.0.0, < 7.0.6.1 | 7.0.6.1 |
| vmware/spring_security | ≥ 7.1.0, < 7.1.0.1 | 7.1.0.1 |