🇰🇷 한글 설명
Himmelblau 0.9.0~0.9.14 및 1.00-alpha 버전에서 Entra ID 그룹 이름을 사용하여 접근 제한을 설정할 경우 권한 상승 취약점이 발생합니다. 공격자가 동일한 이름을 가진 그룹을 생성하여 인증이나 sudo 권한을 탈취할 수 있으며, 이는 버전 0.9.15에서 objectId 기반 방식으로 변경됨으로써 해결되었습니다.
💡 쉬운 설명
사용자 이름 대신 그룹 이름으로 권한을 관리할 때, 공격자가 똑같은 이름의 가짜 그룹을 만들어 권한을 얻을 수 있는 문제입니다. 이를 방지하려면 이름 대신 고유한 ID 번호를 사용해야 합니다.
🇺🇸 원문 (English)
Himmelblau is an interoperability suite for Microsoft Azure Entra ID and Intune. Himmelblau versions 0.9.0 through 0.9.14 and 1.00-alpha are vulnerable to a privilege escalation issue when Entra ID group-based access restrictions are configured using group display names instead of object IDs. Starting in version 0.9.0, Himmelblau introduced support for specifying group names in the `pam_allow_groups` configuration option. However, Microsoft Entra ID permits the creation of multiple groups with the same `displayName` via the Microsoft Graph API—even by non-admin users, depending on tenant settings. As a result, a user could create a personal group with the same name as a legitimate access group (e.g., `"Allow-Linux-Login"`), add themselves to it, and be granted authentication or `sudo` rights by Himmelblau. Because affected Himmelblau versions compare group names by either `displayName` or by the immutable `objectId`, this allows bypassing access control mechanisms intended to restrict login to members of official, centrally-managed groups. This issue is fixed in Himmelblau version **0.9.15** and later. In these versions, group name matching in `pam_allow_groups` has been deprecated and removed, and only group `objectId`s (GUIDs) may be specified for secure group-based filtering. To mitigate the issue without upgrading, replace all entries in `pam_allow_groups` with the objectId of the target Entra ID group(s) and/or audit your tenant for groups with duplicate display names using the Microsoft Graph API.
📍 영향받는 시스템
Himmelblau versions 0.9.0 through 0.9.14 and 1.00-alpha
⚔️ 공격 벡터
Microsoft Graph API를 통해 기존 권한 그룹과 동일한 displayName을 가진 그룹을 생성하여 접근 제어 우회
🛡️ 대응 방법
Himmelblau를 0.9.15 이상 버전으로 업그레이드하거나, pam_allow_groups 설정의 그룹 이름을 objectId(GUID)로 교체
🔧 검증 코드
출력된 버전이 0.9.15 미만이거나 1.00-alpha인 경우 취약한 상태입니다.
dpkg -l | grep himmelblau 2>/dev/null || rpm -q himmelblau 2>/dev/null || echo 'Package not found'