CVE-2026-40683
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.
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
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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
keystonePyPI |
before 28.0.1 | 28.0.1 |
keystoneDebian: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 |
keystoneDebian: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 |
keystoneDebian: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 less2: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 |
keystonePyPI |
before 28.0.1, plus listed versions 12.0.212.0.313.0.213.0.313.0.4 Show 45 moreShow less14.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 |
keystonePyPI |
before 28.0.1, plus listed versions 12.0.212.0.313.0.213.0.313.0.4 Show 45 moreShow less14.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-keystoneRed 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-keystoneRed 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 |
keystoneUbuntu: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 less2: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 |
keystoneUbuntu: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 less2: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
| Package | Affected | Fixed |
|---|---|---|
keystoneUbuntu: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 less2: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 |
keystoneUbuntu: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 less2:21.0.1-0ubuntu12:21.0.1-0ubuntu22:21.0.1-0ubuntu2.12:21.0.1-0ubuntu2.2 |
2:21.0.1-0ubuntu2.4 |
keystoneUbuntu: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 |
keystoneUbuntu: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
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE 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
bugs.launchpad.net/keystone/+bug/2121152
bugs.launchpad.net/keystone/+bug/2141713
review.opendev.org/958205
openwall.com/lists/oss-security/2026/04/14/9
openwall.com/lists/oss-security/2026/08/05/17
nvd.nist.gov/vuln/detail/CVE-2026-40683
Show 24 moreShow less
github.com/advisories/GHSA-pfx2-9x9m-7ghx
security-tracker.debian.org/tracker/CVE-2026-40683
github.com/openstack/keystone
pypi.org/project/keystone
access.redhat.com/errata/RHSA-2026:39808
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2451037
bugzilla.redhat.com/show_bug.cgi?id=2458472
bugzilla.redhat.com/show_bug.cgi?id=2464305
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_39808.json
access.redhat.com/security/cve/CVE-2026-33551
cve.org/CVERecord?id=CVE-2026-33551
nvd.nist.gov/vuln/detail/CVE-2026-33551
openwall.com/lists/oss-security/2026/04/07/12
security.openstack.org/ossa/OSSA-2026-005.html
access.redhat.com/security/cve/CVE-2026-40683
cve.org/CVERecord?id=CVE-2026-40683
access.redhat.com/security/cve/CVE-2026-43001
cve.org/CVERecord?id=CVE-2026-43001
nvd.nist.gov/vuln/detail/CVE-2026-43001
bugs.launchpad.net/keystone/+bug/2149775
review.opendev.org/c/openstack/keystone/+/985804
ubuntu.com/security/CVE-2026-40683
ubuntu.com/security/notices/USN-8433-1
Left out here: 17 versions. The JSON record has them.