🇰🇷 한글 설명
Metabase의 SQL 스니펫 편집 권한 검증 미흡으로 인해, 권한이 제한된 사용자도 SQL 스니펫을 수정할 수 있는 취약점입니다. 이를 통해 샌드박스 그룹에 속한 사용자가 데이터 접근 제한 로직이 포함된 스니펫을 조작하여 데이터 접근 권한을 우회할 수 있습니다.
💡 쉬운 설명
데이터를 볼 수 있는 권한이 제한된 사용자가 몰래 데이터 조회 규칙을 수정하여 더 많은 정보를 볼 수 있게 만드는 보안 허점입니다. SQL 코드 조각을 마음대로 고칠 수 있어 데이터 보안이 무너질 위험이 있습니다.
🇺🇸 원문 (English)
Metabase is an open source business analytics engine. To edit SQL Snippets, Metabase should have required people to be in at least one group with native query editing permissions to a database–but affected versions of Metabase didn't enforce that requirement. This lack of enforcement meant that: Anyone–including people in sandboxed groups–could edit SQL snippets. They could edit snippets via the API or, in the application UI, when editing the metadata for a model based on a SQL question, and people in sandboxed groups could edit a SQL snippet used in a query that creates their sandbox. If the snippet contained logic that restricted which data that person could see, they could potentially edit that snippet and change their level of data access. The permissions model for SQL snippets has been fixed in Metabase versions 0.46.3, 0.45.4, 0.44.7, 1.46.3, 1.45.4, and 1.44.7. Users are advised to upgrade. Users unable to upgrade should ensure that SQL queries used to create sandboxes exclude SQL snippets.
📍 영향받는 시스템
Metabase versions prior to 0.46.3, 0.45.4, 0.44.7, 1.46.3, 1.45.4, 1.44.7
⚔️ 공격 벡터
API 또는 UI를 통해 권한이 없는 사용자가 SQL 스니펫을 수정하여 데이터 접근 제어 로직을 조작함
🛡️ 대응 방법
Metabase를 수정된 버전(0.46.3, 0.45.4, 0.44.7 등)으로 업그레이드하거나, 샌드박스 생성 쿼리에서 SQL 스니펫 사용을 금지함
🔧 검증 코드
출력된 버전 번호가 취약점이 해결된 버전(0.46.3, 0.45.4, 0.44.7 이상 등)인지 확인합니다.
curl -s http://<METABASE_URL>/api/health | grep -oP '(?<=version":")[^"]+'