🇰🇷 한글 설명
ClearanceKit이 macOS 시스템 키체인에 ECDSA 개인 키를 저장할 때, 특정 조건에서 접근 제어 목록(ACL)이 무시되는 취약점이 발견되었습니다. 이로 인해 root 권한을 가진 프로세스가 키체인에 저장된 키를 사용하여 임의의 정책 데이터베이스에 유효한 서명을 생성할 수 있습니다. 버전 5.0.10 미만에서 발생하며, 해당 버전에서 수정되었습니다.
💡 쉬운 설명
보안 프로그램이 사용하는 중요한 열쇠가 잠금장치 없이 방치되어 있는 상태입니다. 해커가 관리자 권한을 얻으면 이 열쇠를 이용해 보안 규칙을 마음대로 조작할 수 있습니다.
🇺🇸 원문 (English)
ClearanceKit intercepts file-system access events on macOS and enforces per-process access policies. The ECDSA private key used to sign the on-disk policy database (`/Library/Application Support/clearancekit/store.db`) is stored in the macOS System Keychain. The key was created via the two-step pattern `SecKeyCreateRandomKey` (in-memory) followed by `SecItemAdd(kSecValueRef:, kSecAttrAccess:)` (persist). Prior to version 5.0.10, for `kSecClassKey` items in the legacy System Keychain, `kSecAttrAccess` passed to `SecItemAdd` is silently ignored — the persisted key inherits no ACL restriction. The same access builder applied to `kSecClassGenericPassword` items correctly binds the ACL, making this bug specific to the EC key. The result is that any process running as root can use the key to produce valid signatures over arbitrary policy content. Version 5.0.10 fixes the issue. No known workarounds are available. Disabling the system extension and manually removing the System Keychain item labelled `clearancekit policy signing key` would prevent the forged-signature path but also disables policy enforcement.
📍 영향받는 시스템
ClearanceKit 5.0.10 미만 버전 (macOS 환경)
⚔️ 공격 벡터
root 권한을 가진 프로세스가 시스템 키체인에 저장된 ECDSA 개인 키를 탈취하여 정책 데이터베이스에 위조된 서명을 생성함
🛡️ 대응 방법
ClearanceKit을 5.0.10 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 5.0.10 미만이면 취약한 상태입니다.
pkgutil --pkg-info com.clearancekit.agent 2>/dev/null | grep -E 'version'