🇰🇷 한글 설명
Fleet의 4.84.1 이하 버전에서 가장 낮은 권한인 Observer 역할의 사용자가 정렬 순서 오라클(sort-order oracle) 취약점을 이용해 호스트 등록 비밀번호를 추출할 수 있습니다. 공격자는 검증되지 않은 order_key 파라미터를 사용하여 이진 탐색 방식으로 민감한 필드 값을 한 글자씩 알아낼 수 있습니다. 이를 통해 공격자는 등록된 호스트를 사칭하고 조작된 쿼리 결과나 명령을 전송하여 전체 배포 환경을 오염시킬 수 있습니다.
💡 쉬운 설명
권한이 낮은 사용자가 시스템의 정렬 기능을 악용하여 숨겨진 비밀번호를 한 글자씩 알아낼 수 있는 보안 결함입니다. 이 비밀번호를 알아내면 공격자가 정상적인 컴퓨터인 것처럼 속여 가짜 정보를 보내거나 시스템 명령을 가로챌 수 있습니다.
🇺🇸 원문 (English)
Fleet is an open-source device management platform built on osquery. In versions up to and including 4.84.1, the labels host-listing endpoint (GET /api/v1/fleet/labels/{id}/hosts) allowed an authenticated user with the lowest-privilege Observer role to extract host enrollment secrets through a sort-order oracle. The endpoint accepted a user-supplied order_key parameter that was not validated against a column allowlist, so an attacker with Global or Team Observer access could set the sort column to a sensitive field such as h.node_key and combine it with the cursor-based after parameter to binary-search the value one character at a time; the targeted value never appeared in the response, but the presence or absence of results revealed each character. Because node_key and orbit_node_key are the long-lived shared secrets that osquery and Orbit agents use to authenticate to the Fleet server, an attacker who reconstructed them could impersonate enrolled hosts, submit fabricated query results and inventory, retrieve pending scripts and MDM commands, and poison compliance and policy results across the deployment. This issue is fixed in version 4.84.2.
📍 영향받는 시스템
Fleet versions up to and including 4.84.1
⚔️ 공격 벡터
정렬 파라미터(order_key)를 이용한 이진 탐색 기반의 데이터 추출 (Sort-order oracle)
🛡️ 대응 방법
Fleet 버전을 4.84.2 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 4.84.0 또는 4.84.1이 포함되면 취약한 버전이므로 업데이트가 필요합니다.
curl -s http://<fleet-server-ip>/api/v1/fleet/version | grep -E '4\.(84\.[0-1])'