Описание
In OpenStack Keystone before 28.0.1, the LDAP identity backend does not convert the user enabled attribute to a boolean when the user_enabled_invert configuration option is False (the default). The _ldap_res_to_model method in the UserApi class only performed string-to-boolean conversion when user_enabled_invert was True. When False, the raw string value from LDAP (e.g., "FALSE") was used directly. Since non-empty strings are truthy in Python, users marked as disabled in LDAP were treated as enabled by Keystone, allowing them to authenticate and perform actions. All deployments using the LDAP identity backend without user_enabled_invert=True or user_enabled_emulation are affected.
A flaw was found in OpenStack Keystone. When using the LDAP identity backend, the system incorrectly processes the user enabled attribute if the user_enabled_invert configuration option is set to False. This error causes users marked as disabled in LDAP to be treated as enabled within Keystone, allowing them to authenticate and perform actions despite their disabled status. This can lead to unauthorized access to resources.
Отчет
There's a flaw in OpenStack Keystone's LDAP identity backend allows unauthorized access. When the user_enabled_invert configuration option is set to its default of False, users marked as disabled in LDAP are incorrectly treated as enabled within Keystone. This enables them to authenticate and perform actions, affecting Red Hat OpenStack Platform deployments utilizing the LDAP identity backend without user_enabled_invert=True or user_enabled_emulation configured.
This flaw happens due to the fact that any non-empty string in the Python programing language are handled as True, openstack-keystone lacks the proper conversion from string to boolean type when reading the user enabled LDAP attribute when the user_enabled_invert configuration is set to false, this will lead to any previously existing user which is disabled in the LDAP side will be handled as enabled by the OpenStack Keystone.
Red Hat Product Security has rated this flaw as having the severity of Moderate as for exploiting this flaw the attacker needs to have a previous access to the targeted system, additionally the impact will be limited to the same level of access the attacker had previously it had its user disabled in the LDAP side.
Меры по смягчению последствий
To mitigate this issue, configure OpenStack Keystone to correctly interpret the LDAP user enabled attribute. Set the user_enabled_invert option to True in the keystone.conf file.
Example:
After modifying the configuration, restart the Keystone service for the changes to take effect. This may temporarily disrupt authentication services. Additionally the user should start using an LDAP attribute with inverted semantics (such as nsAccountLock) to match the same semantics of the keystone side.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat OpenStack Platform 13 (Queens) | rhosp13/openstack-keystone | Affected | ||
| Red Hat OpenStack Platform 16.2 | openstack-keystone | Not affected | ||
| Red Hat OpenStack Platform 16.2 | rhosp-rhel8/openstack-keystone | Not affected | ||
| Red Hat OpenStack Platform 17.1 | openstack-keystone | Not affected | ||
| Red Hat OpenStack Platform 17.1 | rhosp-rhel9/openstack-keystone | Not affected | ||
| Red Hat OpenStack Platform 18.0 | rhoso/openstack-keystone-rhel9 | Not affected | ||
| Red Hat OpenStack Services on OpenShift 18.0 | openstack-keystone | Fixed | RHSA-2026:39808 | 15.07.2026 |
Показывать по
Дополнительная информация
Статус:
7.7 High
CVSS3
Связанные уязвимости
In OpenStack Keystone before 28.0.1, the LDAP identity backend does not convert the user enabled attribute to a boolean when the user_enabled_invert configuration option is False (the default). The _ldap_res_to_model method in the UserApi class only performed string-to-boolean conversion when user_enabled_invert was True. When False, the raw string value from LDAP (e.g., "FALSE") was used directly. Since non-empty strings are truthy in Python, users marked as disabled in LDAP were treated as enabled by Keystone, allowing them to authenticate and perform actions. All deployments using the LDAP identity backend without user_enabled_invert=True or user_enabled_emulation are affected.
In OpenStack Keystone before 28.0.1, the LDAP identity backend does not convert the user enabled attribute to a boolean when the user_enabled_invert configuration option is False (the default). The _ldap_res_to_model method in the UserApi class only performed string-to-boolean conversion when user_enabled_invert was True. When False, the raw string value from LDAP (e.g., "FALSE") was used directly. Since non-empty strings are truthy in Python, users marked as disabled in LDAP were treated as enabled by Keystone, allowing them to authenticate and perform actions. All deployments using the LDAP identity backend without user_enabled_invert=True or user_enabled_emulation are affected.
In OpenStack Keystone before 28.0.1, the LDAP identity backend does no ...
OpenStack Keystone: LDAP identity backend does not convert enabled attribute to boolean
7.7 High
CVSS3