🇰🇷 한글 설명
OpenStack Keystone 28.0.1 이전 버전에서 LDAP identity backend가 user_enabled_invert 옵션을 False로 설정했을 때 사용자 활성화 속성을 boolean으로 변환하지 않습니다. 이로 인해 LDAP에서 비활성화된 사용자도 Keystone에서는 활성화된 것으로 인식되어 인증 및 권한 있는 작업 수행이 가능합니다.
💡 쉬운 설명
Keystone의 사용자 관리 시스템이 LDAP에서 '비활성화' 상태를 제대로 인식하지 못합니다. 결과적으로 차단되어야 할 사용자가 시스템에 접근하고 작업을 수행할 수 있게 됩니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
OpenStack Keystone < 28.0.1 (LDAP identity backend 사용, user_enabled_invert=False 또는 user_enabled_emulation 미설정)
⚔️ 공격 벡터
LDAP에서 비활성화된 계정 자격증명으로 Keystone에 인증하여 시스템 접근 및 권한 있는 작업 수행
🛡️ 대응 방법
OpenStack Keystone을 28.0.1 이상으로 업그레이드하거나 user_enabled_invert=True로 설정
🔧 검증 코드
설치된 Keystone 버전이 28.0.1 이상인지 확인하고, keystone.conf에서 user_enabled_invert 설정값 검증
dpkg -l openstack-keystone 2>/dev/null | grep keystone || rpm -qa | grep openstack-keystone