Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
superset-g3-v0-import-sql-plant — Apache Superset 6.1.0의 권한 부여 결함에 대한 개념 증명(PoC) 실습 환경으로, Gamma 대시보드 편집자가 버전 관리되지 않는 v0 대시보드 가져오기를 통해 데이터셋 SQL을 심어 차트 새로고침 시 실행되도록 하는 취약점입니다. | Kitploit
도구/GitHubGitHub/abraxas/superset-g3-v0-import-sql-plant
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPapers & ResearchLabs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubabraxas/superset-g3-v0-import-sql-plant

superset-g3-v0-import-sql-plant

Apache Superset 6.1.0의 권한 부여 결함에 대한 개념 증명(PoC) 실습 환경으로, Gamma 대시보드 편집자가 버전 관리되지 않는 v0 대시보드 가져오기를 통해 데이터셋 SQL을 심어 차트 새로고침 시 실행되도록 하는 취약점입니다.

저장소 보기
119시간 20분 전아직 검토되지 않음

Abraxas Labs - superset-g3-v0-import-sql-plant

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  superset-g3-v0-import-sql-plant

superset-g3-v0-import-sql-plant

일반 대시보드 편집자 계정을 가진 동료가 다른 사람들이 이미 신뢰하는 차트 안에 자신의 데이터베이스 쿼리를 숨길 수 있습니다. 누군가 그 차트를 다음에 열 때마다, 그 쿼리는 회사의 데이터 연결에 대해 실행됩니다. 그들은 자신에게 접근 권한이 부여된 적 없는 테이블을 읽을 수 있습니다. 원래 이를 막아야 하는 추가 "내 SQL 직접 실행" 권한은 필요하지 않습니다. 그들은 새로운 웨어하우스 로그인을 등록할 수 없고, 이 차트 경로를 통해 INSERT나 DELETE를 실행할 수도 없습니다.

분류: 권한 잔여 도달 범위: 원격

Apache Superset 6.1.0 (c83fb2bb) - Apache Software Foundation

기본 Gamma는 Dashboard에 can_write 권한이 있으므로 POST /api/v1/dashboard/import/가 매트릭스 내에 있습니다. 비-ZIP JSON에는 metadata.yaml이 없으므로 디스패처는 v1을 시도한 뒤 버전 없는 v0로 넘어갑니다. decode_dashboards가 SqlaTable을 재구성합니다. import_dataset은 table_name + schema + database_id(params.database_name에서 가져옴)로 조회하고, datasource.override(i_datasource)는 raise_for_access 없이 그리고 Dataset 쓰기 없이 sql을 포함한 export_fields를 복사합니다. 그런 다음 POST /api/v1/chart/data가 해당 SQL을 데이터셋의 분석 연결에 대한 가상 FROM으로 컴파일합니다.

sql_lab 없는 Gamma SQL. Dataset REST PUT은 403으로 유지됨. v1 ZIP은 비어 있음.

ID아직 CVE 없음
분류권한 잔여 (CVE-2026-23982 / CVE-2024-26016의 잔여)
도달 범위원격 (인증된 HTTP; 기본 Gamma)
CWECWE-863, CWE-284
CVSS높음: 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
제품Apache Superset
영향받음6.1.0 (c83fb2bb1dcfac41ac51bcebd82471f4a7180d18); 헌트 당시 GitHub 최신 GA
인증기본 Gamma (can_write Dashboard). 비인증 아님. Admin 아님(범위 밖).
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

Gamma(또는 Dashboard 쓰기 권한이 있는 모든) 계정과 나중에 차트로 만들 수 있는 데이터셋이 필요합니다: JSON params에 database_name이 있는 Database에서 동일한 table_name + schema. 보완적 부여는 심어진 SQL이 지목하는 모든 테이블이 아니라 데이터셋 객체에 있습니다. chart/data의 raise_for_access는 데이터소스 객체(datasource_access / 스키마 / 소유자)를 기준으로 합니다. get_from_clause는 has_mutation()만 거부합니다.

권한방법 / 싱크정찰 / 무결성 / 가용성실험실 입증 또는 추론
이름이 일치하는 데이터셋의 가상 SQL 덮어쓰기Gamma POST /api/v1/dashboard/import/ 비-ZIP JSON; v0 import_dataset datasource.override가 sql을 포함한 export_fields를 복사무결성 (dataset.sql)실험실 입증. Import 200; dataset.sql = SELECT 'SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS' AS witness
해당 데이터셋의 분석 URI에서 그 SQL 실행plant 후 POST /api/v1/chart/data; get_from_clause가 저장된 sql을 TextAsFrom으로 감쌈정찰 (해당 URI 사용자가 읽을 수 있는 모든 테이블 SELECT)실험실 입증. 200; 컴파일된 FROM (SELECT 'SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS' AS witness) AS virtual_table
이미 다른 권한 부여 사용자가 열어둔 차트에 쿼리 숨기기동일한 plant; 소유자 / 다른 datasource_access 주체가 새로고침 시 실행무결성 + 정찰 (다른 사람이 plant를 실행)추론. 실험실 Gamma는 이미 권한이 있어 자체 실행됨
이전 SQL을 사용하던 대시보드 중단물리 테이블 sql을 공격자 SELECT로 교체가용성추론
부정: SQL Lab 실행POST /api/v1/sqllab/execute/해당 없음실험실 입증. 403
부정: Dataset REST 덮어쓰기sql을 포함한 PUT /api/v1/dataset/{id}해당 없음실험실 입증. 403; sql은 비어 있는 상태 유지 (CVE-2026-23982 관련)
부정: metadata.yaml이 포함된 v1 ZIP동일한 import 엔드포인트, ZIP 번들해당 없음실험실 입증. 200; sql은 비어 있는 상태 유지 (CVE-2024-26016 계열)

이 잔여 항목에 대해 종결된 사항: 인증 없는 import; 새 Database URI 등록 (v0 데이터셋 import는 연결을 생성하지 않음; params.database_name 누락 시 DatabaseNotFoundError); chart/data를 통한 DML (has_mutation()); Gamma가 읽을 수 없는 데이터셋을 차트화 (403); 새로 삽입된 고유 table_name (PVM은 생성되었으나 Gamma에 연결되지 않음). RCE 아님. Admin 아님. 프로덕션 웨어하우스 분리는 SELECT를 해당 URI 사용자로 제한함. 실험실 분석 URI는 메타데이터와 동일한 Postgres였으므로 ab_user를 포함한 교차 테이블은 추론이며, 두 번째 오라클로 검증되지 않음.

발견 경위

Apache Superset 6.1.0을 고정했습니다. Admin은 OS 동등 권한이므로 범위 밖입니다. Apache 자체 역할 매트릭스(Gamma, Alpha, sql_lab, 임베디드 게스트, Public)를 기준으로 잔여 항목을 추적했습니다.

6.0.0 웨이브에서 이미 chart/data sqlExpression (CVE-2026-23980), Dataset REST SQL (CVE-2026-23982), SQL Lab DO $$ / EXPLAIN ANALYZE (CVE-2026-23984)가 종결되었습니다. 버전이 있는 ZIP의 import 인가 처리는 CVE-2024-26016입니다. 버전이 없는 v0는 "파일이 버전 관리되지 않는다"는 이유로 여전히 command_versions에서 마지막 순위입니다.

Dashboard의 import_는 write에 매핑됩니다. 비-ZIP JSON은 metadata.yaml이 없는 {filename: bytes}입니다. 디스패처는 v1을 시도하고 IncorrectVersionError를 잡은 뒤 v0를 실행합니다. decode_dashboards는 __SqlaTable__을 라이브 모델로 변환합니다. import_dataset은 조회 후 덮어씁니다. export_fields에는 sql이 포함됩니다. 쿼리 시점에는 저장된 SQL을 신뢰된 것으로 취급합니다: has_mutation() 이후의 get_from_clause.

이미 기록된 잘못된 방향들: v1 ZIP을 잔여 항목으로 취급 (sql은 비어 있는 상태 유지); Dataset REST PUT (403); Gamma로서의 SQL Lab (403); 임의의 Database 객체로 확장 (v0는 URI를 등록하지 않음); 리버스 셸. 연극일 뿐. 증인은 가상 FROM입니다.

실험실

python3 superset-g3-v0-import-sql-plant-Abraxas-Labs.py

또는:

cd lab
./run.sh

오직 http://127.0.0.1:19710만 대상으로 한다. 이미지 apache/superset:6.1.0. Compose 프로젝트 superset-g3-v0-import. 시드: Admin, Gamma 전용 사용자, Lab Analytics의 물리적 데이터셋 lab_items, Gamma datasource_access. 오라클은 심어진 SQL과 차트/데이터에 있는 증인 문자열이다.

SUCCESS superset-g3-v0-import-sql-plant gamma-import-ok plant-sql-ok chart-data-witness-ok sqllab-403 dataset-put-403 v1-zip-no-overwrite SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS

수정 사항

v0 import_dataset은 override가 sql을 복사하기 전에 Dataset 쓰기 권한과 raise_for_access를 요구해야 합니다. command_versions에서 버전이 지정되지 않은 v0를 제거하거나, metadata.yaml이 없는 가져오기를 거부해야 합니다. 쿼리 시점에 저장된 가상 SQL을 Dataset 쓰기 권한으로 계속 취급해야 합니다.

참고 자료

  • github.com/apache/superset 태그 6.1.0
  • dashboards/api.py · dispatcher.py · dashboard importers/v0.py · dataset importers/v0.py · helpers.py · sqla/models.py
  • 인접 항목(이 경로는 아님): CVE-2026-23982 · CVE-2024-26016
  • CWE-863 · CWE-284
  • 분석 글: https://abraxaslabs.tech/research/superset-g3-v0-import-sql-plant

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하세요. 루프백 실험 환경 전용입니다. 보증은 제공되지 않습니다.

도구 다운로드