CVE-2026-56091

Authorization Bypass
Affects
Apache Shiro
in
Apache Shiro
No items found.
Versions
<3.0.0

Patch Available.

Exclamation circle icon
Patch Available

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

Overview

Apache Shiro is an open-source Java security framework that performs authentication, authorization, cryptography, and session management for applications ranging from small mobile apps to large web and enterprise systems. Its shiro-guice module integrates Shiro with the Google Guice dependency-injection framework, wiring Shiro's servlet filter chains through Guice so that path-based authentication and authorization rules are enforced in front of the application.

An authorization bypass vulnerability (CVE-2026-56091) has been identified in the Apache Shiro shiro-guice module, which allows attackers to bypass the authentication and authorization filters protecting a resource by appending a trailing slash to its URL path.

Per CWE-289: the product performs authentication based on the name of a resource being accessed, or the name of the actor performing the access, but it does not properly check all possible names for that resource or actor.

This issue affects all versions of Apache Shiro through 2.x, as well as the 3.0.0-alpha-1 pre-release, when the shiro-guice module is used in a web servlet context.

Details

Module Info

Vulnerability Info

This High-severity vulnerability is found in the org.apache.shiro:shiro-guice package in all versions of Apache Shiro through 2.x, as well as the 3.0.0-alpha-1 pre-release. Applications that configure Shiro through the Guice web integration (ShiroWebModule) resolve their servlet filter chains with the module's own SimpleFilterChainResolver. Its getChain() method matches the raw request path against each configured chain pattern without normalizing a trailing slash:

String path = WebUtils.getPathWithinApplication(WebUtils.toHttp(request));
for (final String pathPattern : chains.keySet()) {
    if (patternMatcher.matches(pathPattern, path)) {
        // builds and returns the Shiro filter chain for this pattern
    }
}
return null;

The default pattern matcher is Shiro's AntPathMatcher, and a pattern that does not end in a slash never matches a path that does. A request for /admin/foo/ therefore fails to match a chain configured for /admin/foo, getChain() returns null, and the Shiro filter chain is skipped entirely: the request continues down the original servlet chain with no authentication or authorization filters applied. When the servlet container routes the trailing-slash variant to the same protected resource, an unauthenticated attacker reaches it by simply appending a slash to the URL.

Only the Guice integration is affected. The resolver used by INI-configured deployments, PathMatchingFilterChainResolver in the shiro-web module, already strips trailing slashes from both the request path and the chain patterns before matching; the Guice module's separate resolver never received the same normalization.

Mitigation

Apache Shiro 1.x is End-of-Life and no longer receives open-source updates to address this issue. The final 1.x release was 1.13.0; as of February 28, 2024, Shiro v1 was superseded by v2. No publicly available fix exists for the 1.x or 2.x lines; the fix for this issue shipped only in Apache Shiro 3.0.0.

Users of the affected components should apply one of the following mitigations:

  • Upgrade Apache Shiro to a currently supported release line that contains the fix, first shipped upstream in Apache Shiro 3.0.0.
  • Leverage a commercial support partner like HeroDevs for post-EOL security support.

Credits

  • LocalHost (finder)
Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
High
ID
CVE-2026-56091
PROJECT Affected
Apache Shiro
Versions Affected
<3.0.0
NES Versions Affected
Published date
June 24, 2026
≈ Fix date
September 25, 2026
Category
Authorization Bypass
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for Apache Shiro
Rss feed icon
Subscribe via RSS
or

By submitting the form 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.