CVE-2026-76578은 FreeIPA의 셀프 관리 OTP 토큰 접근 제어 정책(ACI)에 있는 결함이다. 389-ds 디렉터리 서버의 ACI 평가 버그와 결합하면 자격 증명·사용자 상호작용·사전 접근 없이도 LDAP 서비스 포트 389 또는 636에 네트워크 도달성만 확보되면, 비인증 클라이언트가 임의의 Kerberos principal을 만들어 administrators 그룹에 추가하는 경로가 열린다.
1. CVE-2026-76578 개요: self-managed OTP 토큰 ACI의 두 가지 결함
CVE-2026-76578은 FreeIPA의 셀프 관리 OTP 토큰 ACI에서 인증 없이 악용 가능한 결함이다. 이 결함의 핵심 성질은 두 가지다.
- 인증 불요(No Authentication Required). 해당 ACI는 LDAP bind 시점의 인증 상태를 검증하지 않는다. 익명 바인드(anonymous bind) 또는 SASL ANONYMOUS 상태에서도 쓰기 연산이 허용된다.
- 동반 추가 속성 제한 부재. 토큰 엔트리를 만들 때 함께 넣을 수 있는 속성(attributes)의 범위를 제한하지 않는다. 토큰 엔트리에 속하는 최소 속성은 물론 임의의 다른 속성까지 주입이 가능하다.
이 두 성질이 겹치면 비인증 클라이언트가 LDAP 디렉터리에 없는 새로운 Kerberos principal을 “만들어 놓고” 관리 그룹에 연결하는 연쇄 작업이 가능해진다.
2. 공격 메커니즘: 익명 바인드, 빈 ipaTokenOwner/managedBy, SELFDN ACI 평가 통과
공격의 기술적 세부 과정을 FreeIPA 4.13.4 공식 릴리스 노트의 기술 서술 기준으로 짚어 본다.
2.1 389-ds ACI 평가 버그의 역할
389-ds 디렉터리 서버의 ACI 구현에는 SELFDN 평가기(evaluator) 관련 버그가 있다. 익명 바인드 또는 SASL ANONYMOUS 클라이언트의 userdn은 빈 DN이다. 이 빈 DN을 SELFDN ACI 평가기가 “자기 자신”으로 해석하는 바람에, 해당 ACI가 정의한 쓰기 권한이 자기 자신의 빈 DN에 적용되는 것처럼 평가된다.
2.2 토큰 엔트리 생성과 속성 주입
평가기를 통과하면 비인증 클라이언트가 벌이는 동작은 두 가지다.
ipaTokenOwner와managedBy속성이 빈 값인 셀프 관리 OTP 토큰 엔트리를 생성한다.- FreeIPA의 self-managed-token ACI(
install/share/default-aci.ldif)가 “어떤 속성을 함께 추가할 수 있는지”를 제한하지 않으므로, 아직 LDAP 디렉터리에 없는 공격자가 고른 임의의 Kerberos principal 속성을 동일 엔트리에 주입한다.
2.3 administrators 그룹 연결
생성된 principal은 administrators 그룹에 연결된다. 공식 릴리스 노트는 이 경로를 “관리 권한 탈취의 디딤돌로 사용될 수 있는攻击”으로 서술하며 추가 접근 제어 강화가 함께 적용됐다는 점을 강조한다. 보안 보도 쪽은 “새 principal을 administrators 그룹에 직접 추가한다”고 좀 더 직접적으로 기술한다. 두 서술은 같은 공격 체인을 서로 다른 단계에서 표현한 것으로 읽힌다.
3. 전제 조건: LDAP 서비스 노출과 389-ds ACI 평가 결함과의 결합
이 공격이 성립하려면 아래 조건이 동시에 충족되어야 한다.
- 기본 수정 없이 설치된 FreeIPA 환경. Red Hat은 collision-based technique의 악용을 기본 수정 없는 FreeIPA 설치 환경에서 독립적으로 재현·확인했다.
- LDAP 서비스 포트로의 네트워크 도달성. 포트 389(LDAP) 또는 636(LDAPS)에 대한 네트워크 레벨 접근만 있으면 된다.
- 389-ds 디렉터리 서버의 ACI 평가 결함 존재. 이 결함은 CVE-2026-76578과 별개로 추적 중이며, SELFDN 평가기가 익명 바인드의 빈 DN을 자기 자신으로 해석하는 버그를 품고 있다.
- 자격 증명·사용자 상호작용·사전 접근 불필요.
FreeIPA LDAP 서비스가 신뢰할 수 없는 네트워크(외부 DMZ, 인터넷 직접 노출, 분할되지 않은 내부 세그먼트)에 노출된 배포가 실질적인 위험 대상이다.
4. CVE-2026-13097 패치가 막지 못한 것
FreeIPA 4.13.4 이전 릴리스에도 CVE-2026-13097 완화 조치는 이미 적용되어 있었다. 그런데도 이 조치는 기존 계정 탈취(overtaking existing accounts) 를 막는 데 한계가 있었다.
CVE-2026-13097 패치는 특정 canonical-name 충돌을 차단하는 데 머물렀고, 근본적인 비인증 쓰기 접근 자체는 열려 있었다. 공격자 입장에서는 기존 계정을 탈취하지 않아도 존재하지 않는 새 principal을 만들어 administrators에 연결하는 길이 그대로 남아 있었다.
이 한계를 감안해 FreeIPA 4.13.4에는 CVE-2026-13097 완화 조치에 추가 접근 제어 강화가 함께 적용되었다.
5. 수정 내용: FreeIPA 4.13.4의 bind 규칙 강화
FreeIPA 4.13.4에서 적용된 핵심 수정은 셀프 서비스 bind 규칙의 교체다.
5.1 변경 전후 비교
| 항목 | 변경 전 | 변경 후 (4.13.4) | 효과 |
|---|---|---|---|
| Bind 규칙 | userdn = “ldap:///self” | (userdn = “ldap:///self” and userdn = “ldap:///all”) | 익명 바인드의 빈 userdn이 ldap:///all과 매칭되지 않아 SELFDN 평가 통과가 차단됨 |
| 동반 적용 | CVE-2026-13097 완화 (canonical-name 충돌 차단) | 추가 접근 제어 강화 (비인증 쓰기 경로 차단) | 관리 권한 탈취 디딤돌 경로 차단 |
| 수정 대상 파일 | install/share/default-aci.ldif (self-managed-token ACI) | ACI 정의 자체에서 bind 조건 강화 | |
논리는 단순하다. 익명 LDAP 바인드에서 userdn은 빈 문자열(“”)이다. 빈 문자열은 ldap:///all과 매칭되지 않으므로 userdn = "ldap:///self" and userdn = "ldap:///all" 조건을 만족할 길이 없다. 익명 바인드가 SELFDN ACI를 통과하는 경로는 여기서 원천적으로 막힌다.
6. 완화 방법: 포트 접근 제한과 익명 바인드 비활성화
FreeIPA 4.13.4 패치를 즉시 적용하기 어려운 환경이라면 CVE 공식 권고 사항이 내놓은 임시 조치로 시간을 벌 수 있다.
- LDAP 포트 접근 제한. 방화벽 규칙 또는 네트워크 분할로 포트 389/636 접근을 신뢰 호스트로만 제한한다.
- 익명 LDAP bind 비활성화. 익명 bind를 끄면 이 특정 공격 경로는 차단된다. 단, 적용 전에 해당 배포가 다른 익명 bind 기능에 의존하는지부터 확인한다.
- 389-ds ACI 평가 결함 수정 일정 확인. CVE-2026-76578 악용의 전제 조건 중 하나인 기반 디렉터리 서버 결함은 별도로 추적 중이다. 이 취약점의 수정 일정도 함께 확인해 둔다.
7. 영향 범위와 CVSS 평가
7.1 영향 대상
- FreeIPA 4.13.4 이전 버전, 기본 수정 없이 설치된 환경.
- Red Hat Enterprise Linux 10에 포함된 FreeIPA/IdM 구성.
- LDAP 서비스(포트 389 또는 636)가 신뢰할 수 없는 네트워크에 노출된 모든 배포.
7.2 CVSS 및 상태
- CVSS 9.8 (Critical, CVSSv3).
- Red Hat은 기본 설치 환경에서 collision-based technique의 악용을 독립적으로 재현·확인했다. 다만 야생(wild) 환경에서 관측된 악용은 아직 보고되지 않은 상태다. 두 사실은 “기본 설치 대상 공격 기법 재현 확인”과 “실제 공격 관측”을 구분해 읽어야 할 대목이다.
- 수정 버전: FreeIPA 4.13.4.
7.3 확인 가능한 출처
| 출처 | URL |
|---|---|
| cvelistV5 공식 기록 | https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/76xxx/CVE-2026-76578.json |
| Red Hat Security Advisory | https://access.redhat.com/security/cve/CVE-2026-76578 |
| FreeIPA 4.13.4 공식 릴리스 노트 | https://www.freeipa.org/release-notes/4-13-4.html |
8. 운영 팀을 위한 판단 포인트
- 즉시 확인: FreeIPA 인스턴스가 외부 네트워크 또는 분할되지 않은 내부 세그먼트에서 포트 389/636을 노출하고 있는지 확인한다.
- 패치 우선순위: FreeIPA 4.13.4 업그레이드를 이번 주 내 적용 대상에 포함한다.
- 임시 차단: 패치 전까지 방화벽에서 389/636 포트 접근을 신뢰 호스트로 제한하고, 익명 bind를 비활성화한다. 적용 전 익명 bind 의존 서비스 존재 여부를 먼저 검증한다.
- 관측: LDAP 디렉터리에서
ipaTokenOwner또는managedBy가 빈 값인 신규 토큰 엔트리 생성 이벤트를 SIEM에 알람 규칙으로 등록해 둔다. - 연동 취약점 추적: 389-ds ACI 평가 결함의 별도 CVE/advisory 수정 일정을 확인하고, 미수정 상태라면 389-ds 업데이트도 병행한다.