CVE-2026-22746

Authorization Bypass
Affects
Spring Security
in
Spring
No items found.
Versions
4.2.x; 5.5.x; 5.7.x; 5.8.x; 6.2.x; 6.3.x; 6.4.x; 6.5.x; 7.0.x
Exclamation circle icon
Patch Available

This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.

Overview

Vulnerability in Spring Security. If an application is using the UserDetails#isEnabled#isAccountNonExpired, or #isAccountNonLocked user attributes, to enable, expire, or lock users, then DaoAuthenticationProvider's timing attack defense can be bypassed for users who are disabled, expired, or locked.

Details

Module Info

Vulnerability Info

Vulnerability in Spring Security. If an application is using the UserDetails#isEnabled#isAccountNonExpired, or #isAccountNonLocked user attributes, to enable, expire, or lock users, then DaoAuthenticationProvider's timing attack defense can be bypassed for users who are disabled, expired, or locked.

Mitigation

Only recent versions of Spring Framework receive community support and updates. Older versions have no publicly available fixes for this vulnerability.Users of the affected components should apply one of the following mitigations:

  • Upgrade to a currently supported version of Spring Framework.
  • Leverage a commercial support partner like HeroDevs for post-EOL security support through Never-Ending Support (NES) for Spring Framework.

Steps To Reproduce

  1. Set up the affected environment: Deploy an application using Spring Security with one of the affected versions. Ensure that the application is configured to utilize the UserDetails#isEnabled, #isAccountNonExpired, or #isAccountNonLocked attributes for user authentication.
  2. Create user accounts: Set up multiple user accounts with varying states: one enabled, one disabled, one expired, and one locked. Ensure that the user details are correctly configured to reflect these states.
  3. Trigger authentication requests: Attempt to authenticate using the credentials of the disabled, expired, and locked user accounts. Monitor the response times for each authentication attempt to observe any discrepancies.
  4. Analyze response times: Document the response times for each authentication attempt. A significant difference in response times when authenticating against disabled, expired, or locked accounts may indicate a successful timing attack vulnerability.
  5. Upgrade Spring Security: Apply the appropriate fix for your version of Spring Security as per the advisory
  6. Re-test authentication requests: After upgrading, repeat the authentication attempts for the disabled, expired, and locked user accounts.
  7. Verify remediation: Confirm that the response times for all authentication attempts are consistent and do not exhibit significant differences, indicating that the timing attack vulnerability has been effectively mitigated.
Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
Low
ID
CVE-2026-22746
PROJECT Affected
Spring Security
Versions Affected
4.2.x; 5.5.x; 5.7.x; 5.8.x; 6.2.x; 6.3.x; 6.4.x; 6.5.x; 7.0.x
NES Versions Affected
4.2.x; 5.5.x; 5.7.x; 5.8.x; 6.2.x; 6.3.x; 6.4.x
Published date
April 21, 2026
≈ Fix date
April 21, 2026
Category
Authorization Bypass
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for Spring
Rss feed icon
Subscribe via RSS
or

By clicking “submit” I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.