OSSN-0068: Repeated token revocation requests can lead to service degradation or disruption

Summary

There is currently no limit to the frequency of keystone token revocations that can be made by a single user, in any given time frame. If a user repeatedly makes token requests, and then immediately revokes the token, a performance degradation can occur and possible DoS (Denial of Service) attacks could be directed towards keystone.

Affected Services / Software

All services using Keystone (Mitaka, Liberty, Kilo, Juno, Havana, Icehouse, Grizzly, Folsom, Essex).

Discussion

Token revocation can be self-served, with no restrictions enforced on the number of token revocations made by any user (including service users).

If token revocations are made in quick succession, response times starts to lengthen, due to the increasing entries made in the revocation_event table.

With no form of rate limiting in place, a single user can cause the OpenStack auth service to become poor in response time, resulting in a DoS style attack.

A cleanup of revocation events does occur, based on token expiration plus expiration_buffer (which is 30 minutes by default). However, with the default token TTL of 3600 seconds, a user can potentially fill up approximately several thousand events during that time.

Contacts / References

Author: Luke Hinds, Red Hat