Reviewed:  https://review.opendev.org/c/openstack/keystone/+/828595
Committed: 
https://opendev.org/openstack/keystone/commit/3288af579de8ee312c36fb78ac9309ce8c554827
Submitter: "Zuul (22348)"
Branch:    master

commit 3288af579de8ee312c36fb78ac9309ce8c554827
Author: Dave Wilde (d34dh0r53) <dwi...@redhat.com>
Date:   Wed Feb 9 11:28:59 2022 -0600

    Force algo specific maximum length
    
    The bcrypt algorithm that we use for password hashing silently
    length limits the size of the password that is hashed giving the
    user a false sense of security [0].  This patch adds a check
    in the verify_length_and_trunc_password function for the hash in
    use and updates the max_length accordingly, this will override
    the configured value and log a warning if the password is truncated.
    
    [0]: 
https://passlib.readthedocs.io/en/stable/lib/passlib.hash.bcrypt.html#security-issues
    
    Closes-bug: #1901891
    Change-Id: I8d0bb2438b23227b5a66b94af6f8e198084fcd8d


** Changed in: keystone
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1901891

Title:
  Issues regarding application credentials

Status in OpenStack Identity (keystone):
  Fix Released
Status in OpenStack Security Advisory:
  Won't Fix

Bug description:
  While looking into the application credential API we came across
  several issues. Since they are all closely related I will file them
  under this issue:

  - No secret strength requirements. To configure a password strength
  requirement for users, one can use `password_regex`. However, this is
  not possible for application credentials, which makes it possible to
  create a credentials with the secret 'a':

  $ openstack application credential create test-secret-strength --secret a
  +--------------+----------------------------------+
  | Field        | Value                            |
  +--------------+----------------------------------+
  | description  | None                             |
  | expires_at   | None                             |
  | id           | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
  | name         | test-secret-strength             |
  | project_id   | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
  | roles        | member reader                    |
  | secret       | a                                |
  | system       | None                             |
  | unrestricted | False                            |
  | user_id      | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
  +--------------+----------------------------------+

  To attack this, you'd still need to know the ID, but combined with
  https://bugs.launchpad.net/keystone/+bug/1901207 the impact of this
  issue is increased.

  - No lockout feature. For normal login, the settings
  `lockout_failure_attempts` and `lockout_duration` are used. These do
  not affect the application credential API. This increases the attack
  surface unnecessarily in my opinion. Combined with weak secrets and
  https://bugs.launchpad.net/keystone/+bug/1901207 the probability of a
  successful attack is increased.

  - Only part of secret is verified. It looks like only the first 72
  characters of the secret of an application credential are used to
  verify it. Characters after that are not used in the verification. The
  default length of a secret seems to be 86 characters. Even though
  brute forcing 72 characters is still pretty impossible, this doesn't
  sound like intended behaviour to me.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1901891/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to