JAAS authentication bypass

Description
  • <div class="bb-coolbox"><span class="bb-dark">Manual confirmation is required for this alert.</span></div><br/> Your web application is possibly vulnerable to JAAS Authentication Bypass. JAAS (Java Authentication and Authorization Service) is the Java implementation of the standard Pluggable Authentication Module (PAM) information security framework. The main goal of JAAS is to separate the concerns of user authentication so that they may be managed independently. <br/><br/> Sometimes, JAAS is not configured correctly and an attacker can bypass the authentication. As an example, take a look at the code below: <pre> <security-constraint> <web-resource-collection> <web-resource-name>Adminarea</web-resource-name> <url-pattern>/admin/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>administrator</role-name> </auth-constraint> </security-constraint> </pre> In this case the security constraint is defined only for HTTP methods GET and POST. If an attacker is using the HEAD HTTP method he can bypass the authentication.
Remediation
  • Remove all http-method definitions from the security-constraint section. This will default to "all HTTP methods".
References