Every CVE Search/ Get API key

CVE-2026-40683

OpenStack Keystone: LDAP identity backend does not convert enabled attribute to boolean

7.7 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
High

Exploit likelihood

0.34%Up 0.3 points since Apr 15, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.7

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.

Record
CVE-2026-40683
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Weakness
CWE-843
Updated
2026-11-02
EUVDEUVD-2026-22701 7.7

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.

Record
EUVD-2026-22701
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-pfx2-9x9m-7ghx 7.7

OpenStack Keystone: LDAP identity backend does not convert enabled attribute to boolean

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.

Record
GHSA-pfx2-9x9m-7ghx
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Weakness
CWE-843
Updated
2026-11-02
NVD 7.7

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.

Record
CVE-2026-40683
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Weakness
CWE-843
Updated
2026-11-02
OSVDEBIAN-CVE-2026-40683 7.7

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.

Record
DEBIAN-CVE-2026-40683
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Updated
2026-11-02
OSVGHSA-pfx2-9x9m-7ghx 7.7

OpenStack Keystone: LDAP identity backend does not convert enabled attribute to boolean

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.

Record
GHSA-pfx2-9x9m-7ghx
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Weakness
CWE-843
Updated
2026-11-02
OSVPYSEC-2026-2550 7.7

OpenStack Keystone: LDAP identity backend does not convert enabled attribute to boolean

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.

Record
PYSEC-2026-2550
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Updated
2026-11-02
OSVRHSA-2026:39808 8.0

Red Hat Security Advisory: Red Hat OpenStack Services on OpenShift 18.0 (openstack-keystone) security update

Record
RHSA-2026:39808
CVSS 3.1
8.0 HighCVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-40683 7.7

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.

Record
UBUNTU-CVE-2026-40683
CVSS 3.1
7.7 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:H
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
keystone
PyPI
before 28.0.1
28.0.1
keystone
Debian:12
before 2:22.0.2-0+deb12u2, plus listed versions
2:22.0.0-22:22.0.2-0+deb12u1
2:22.0.2-0+deb12u2
keystone
Debian:13
before 2:27.0.0-3+deb13u3, plus listed versions
2:27.0.0-32:27.0.0-3+deb13u1
2:27.0.0-3+deb13u3
keystone
Debian:14
before 2:29.0.0~rc1-2, plus listed versions
2:27.0.0-32:28.0.0-12:28.0.0-22:28.0.0-32:28.0.0-4
Show 6 moreShow less
2:28.0.0-52:28.0.0-62:28.0.0~rc1-12:28.0.0~rc1-22:28.0.0~rc1-42:29.0.0~rc1-1
2:29.0.0~rc1-2
keystone
PyPI
before 28.0.1, plus listed versions
12.0.212.0.313.0.213.0.313.0.4
Show 45 moreShow less
14.0.014.0.114.1.014.2.015.0.015.0.0.0rc115.0.0.0rc215.0.116.0.016.0.0.0rc116.0.0.0rc216.0.116.0.217.0.017.0.0.0rc117.0.0.0rc217.0.118.0.018.0.0.0rc118.1.019.0.019.0.0.0rc119.0.0.0rc219.0.120.0.020.0.0.0rc120.0.121.0.021.0.0.0rc121.0.122.0.022.0.0.0rc122.0.122.0.223.0.023.0.0.0rc123.0.123.0.224.0.024.0.0.0rc124.1.025.0.025.0.0.0rc126.0.026.0.0.0rc1
28.0.1
keystone
PyPI
before 28.0.1, plus listed versions
12.0.212.0.313.0.213.0.313.0.4
Show 45 moreShow less
14.0.014.0.114.1.014.2.015.0.015.0.0.0rc115.0.0.0rc215.0.116.0.016.0.0.0rc116.0.0.0rc216.0.116.0.217.0.017.0.0.0rc117.0.0.0rc217.0.118.0.018.0.0.0rc118.1.019.0.019.0.0.0rc119.0.0.0rc219.0.120.0.020.0.0.0rc120.0.121.0.021.0.0.0rc121.0.122.0.022.0.0.0rc122.0.122.0.223.0.023.0.0.0rc123.0.123.0.224.0.024.0.0.0rc124.1.025.0.025.0.0.0rc126.0.026.0.0.0rc1
28.0.1
openstack-keystone
Red Hat:openstack:18.0::el9
From an advisory covering 3 CVEs
before 1:23.0.3-18.0.20260610133808.9e3dfb4.el9ost
1:23.0.3-18.0.20260610133808.9e3dfb4.el9ost
python3-keystone
Red Hat:openstack:18.0::el9
From an advisory covering 3 CVEs
before 1:23.0.3-18.0.20260610133808.9e3dfb4.el9ost
1:23.0.3-18.0.20260610133808.9e3dfb4.el9ost
keystone
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
2:8.0.0-0ubuntu12:9.0.0~b1-0ubuntu12:9.0.0~b2-0ubuntu12:9.0.0~b3-0ubuntu12:9.0.0~rc1-0ubuntu1
Show 11 moreShow less
2:9.0.0-0ubuntu12:9.0.2-0ubuntu12:9.0.2-0ubuntu22:9.1.0-0ubuntu12:9.2.0-0ubuntu12:9.3.0-0ubuntu12:9.3.0-0ubuntu22:9.3.0-0ubuntu32:9.3.0-0ubuntu3.12:9.3.0-0ubuntu3.22:9.3.0-0ubuntu3.2+esm2
None known
keystone
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
2:12.0.0-0ubuntu12:13.0.0~b1-0ubuntu12:13.0.0~b2-0ubuntu12:13.0.0~b3-0ubuntu12:13.0.0~rc1-0ubuntu1
Show 7 moreShow less
2:13.0.0~rc2-0ubuntu12:13.0.0-0ubuntu12:13.0.1-0ubuntu12:13.0.2-0ubuntu12:13.0.2-0ubuntu32:13.0.4-0ubuntu12:13.0.4-0ubuntu1+esm1
None known
Show 4 moreShow less
Affected packages
PackageAffectedFixed
keystone
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
2:16.0.0-0ubuntu12:17.0.0~b1~git2019121613.db81fee63-0ubuntu12:17.0.0~b2~git2020020513.99733f172-0ubuntu12:17.0.0~b3~git2020032415.9f9040257-0ubuntu12:17.0.0~b3~git2020032415.9f9040257-0ubuntu2
Show 6 moreShow less
2:17.0.0~b3~git2020041013.7bb6314e4-0ubuntu12:17.0.0-0ubuntu0.20.04.12:17.0.1-0ubuntu12:17.0.1-0ubuntu22:17.0.1-0ubuntu2+esm12:17.0.1-0ubuntu2+esm2
None known
keystone
Ubuntu:22.04:LTS
before 2:21.0.1-0ubuntu2.4, plus listed versions
2:20.0.0-0ubuntu12:20.0.0+git2021120815.2ddf8f321-0ubuntu12:20.0.0+git2022011217.771c943ad-0ubuntu12:20.0.0+git2022030313.a3fc9e7c3-0ubuntu12:21.0.0-0ubuntu1
Show 4 moreShow less
2:21.0.1-0ubuntu12:21.0.1-0ubuntu22:21.0.1-0ubuntu2.12:21.0.1-0ubuntu2.2
2:21.0.1-0ubuntu2.4
keystone
Ubuntu:24.04:LTS
before 2:25.0.0-0ubuntu1.4, plus listed versions
2:24.0.0-0ubuntu12:24.0.0+git2024011916.adfa92b4-0ubuntu12:25.0.0~rc1-0ubuntu12:25.0.0-0ubuntu12:25.0.0-0ubuntu1.12:25.0.0-0ubuntu1.2
2:25.0.0-0ubuntu1.4
keystone
Ubuntu:25.10
before 2:28.0.0-0ubuntu1.3, plus listed versions
2:27.0.0-0ubuntu12:27.0.0+git2025080113.e066e18ab-0ubuntu12:28.0.0~rc1-0ubuntu12:28.0.0-0ubuntu12:28.0.0-0ubuntu1.1
2:28.0.0-0ubuntu1.3

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-40683 is a high vulnerability (CVSS 7.7) in Openstack Keystone, published April 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 27th percentile. Fixed in keystone 28.0.1.

References

Show 24 moreShow less
This page doesn't list everything

Left out here: 17 versions. The JSON record has them.

MoveEnter Open