CVE-2026-23901

2.5 LOW

📋 TL;DR

This CVE describes an observable timing discrepancy vulnerability in Apache Shiro authentication. Attackers can use timing differences to distinguish between non-existent users and incorrect passwords, enabling user enumeration. This affects Apache Shiro versions 1.* and 2.* before 2.0.7.

💻 Affected Systems

Products:
  • Apache Shiro
Versions: 1.*, 2.* before 2.0.7
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments using vulnerable Shiro versions for authentication.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could enumerate valid usernames, then perform targeted password brute-force attacks against known accounts.

🟠

Likely Case

Local attackers could identify valid user accounts, increasing efficiency of credential stuffing attacks.

🟢

If Mitigated

With proper network controls and rate limiting, impact is limited to potential user enumeration without credential compromise.

🌐 Internet-Facing: LOW
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Attack requires timing measurements but no special tools beyond standard HTTP clients.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.0.7 or later

Vendor Advisory: https://lists.apache.org/thread/mm1jct9b86jvnh3y44tj22xvjtx3xhhh

Restart Required: Yes

Instructions:

1. Download Apache Shiro 2.0.7 or later. 2. Replace existing Shiro JAR files. 3. Restart application server. 4. Verify authentication still works correctly.

🔧 Temporary Workarounds

Implement rate limiting

all

Add request rate limiting at application or infrastructure level to prevent timing-based enumeration

Add random delays

all

Implement uniform response times for all authentication attempts regardless of outcome

🧯 If You Can't Patch

  • Implement network-level rate limiting and monitoring for authentication attempts
  • Deploy WAF rules to detect and block timing-based enumeration patterns

🔍 How to Verify

Check if Vulnerable:

Check Shiro version in application dependencies or classpath. Vulnerable if version is 1.* or 2.* < 2.0.7.

Check Version:

Check Maven/Gradle dependencies or examine shiro-core-*.jar file version

Verify Fix Applied:

Verify Shiro version is 2.0.7 or later and test authentication with timing measurements shows consistent response times.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts with varying response times
  • Patterns of authentication attempts against non-existent users

Network Indicators:

  • Unusual volume of authentication requests from single source
  • Requests with incremental timing measurements

SIEM Query:

source="auth.log" ("authentication failed" OR "login failed") | stats count by src_ip, user | where count > threshold

🔗 References

📤 Share & Export