A flaw was found in OpenStack Keystone. A remote attacker could exploit this vulnerability by sending a large HTTP request, specifically by providing a long tenant name when requesting a token. This could lead to a denial of service, consuming excessive CPU and memory resources on the affected system.
OpenStack Keystone before 2012.1.1, as used in OpenStack Folsom before Folsom-1 and OpenStack Essex, does not properly implement token expiration, which allows remote authenticated users to bypass intended authorization restrictions by (1) creating new tokens through token chaining, (2) leveraging possession of a token for a disabled user account, or (3) leveraging possession of a token for an account with a changed password.
Jason Xu (yinyangxu) discovered several vulnerabilities in OpenStack Keystone token verification:
The first occurs in the API /v2.0/OS-KSADM/services and /v2.0/OS-KSADM/services/{serviceid}, the second occurs in /v2.0/tenants/{tenantid}/users/{userid}/roles
In both cases the OpenStack Keystone code fails to check if the tokens are valid. These issues have been addressed by adding checks in the form of testservicecrudrequiresauth() and testuserrolelistrequiresauth().
External references: https://bugs.launchpad.net/keystone/+bug/1006822 https://bugs.launchpad.net/keystone/+bug/1006815
OpenStack Keystone Essex before 2012.1.2 and Folsom before folsom-3 does not properly handle authorization tokens for disabled tenants, which allows remote authenticated users to access the tenant's resources by requesting a token for the tenant.