Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
superset-g3-v0-import-sql-plant — Apache Superset 6.1.0 の認可の欠陥に関する概念実証ラボ。Gamma ダッシュボード編集者が、バージョン管理されていない v0 ダッシュボードインポートを通じてデータセット SQL を仕込み、チャート更新時に実行される。 | Kitploit
ツール/GitHubGitHub/abraxas/superset-g3-v0-import-sql-plant
認証と認可特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティ論文と研究ラボと実践

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHub
abraxas/superset-g3-v0-import-sql-plant

superset-g3-v0-import-sql-plant

Apache Superset 6.1.0 の認可の欠陥に関する概念実証ラボ。Gamma ダッシュボード編集者が、バージョン管理されていない v0 ダッシュボードインポートを通じてデータセット SQL を仕込み、チャート更新時に実行される。

リポジトリを見る
119時間5分前未レビュー

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)がexport_fieldsをコピーします。これにはsqlが含まれ、raise_for_accessもDatasetの書き込みもありません。その後POST /api/v1/chart/dataがそのSQLを、データセットの分析接続上で仮想FROMとしてコンパイルします。

sql_labなしのGamma SQL。Dataset REST PUTは403のまま。v1 ZIPは空のまま。

IDCVE未割当
クラス権限の残存(CVE-2026-23982 / CVE-2024-26016の残存)
到達範囲リモート(認証済みHTTP、デフォルトGamma)
CWECWE-863, CWE-284
CVSSHigh: 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 Latest 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 / schema / owner)に対するものです。get_from_clauseはhas_mutation()のみを拒否します。

権限手法 / シンク偵察 / 整合性 / 可用性ラボ実証または推測
名前が一致するデータセットの仮想SQLを上書きGamma POST /api/v1/dashboard/import/ 非ZIP JSON; v0 import_dataset datasource.override が sql を含む export_fields をコピー整合性 (dataset.sql)ラボ実証。インポート 200; dataset.sql = SELECT 'SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS' AS witness
そのSQLをデータセットの分析URI上で実行植え込み後に 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
他の権限付与済みユーザーが既に開いているチャートにクエリを隠す同じ植え込み; オーナー / 他の datasource_access プリンシパルがリフレッシュ時に実行整合性 + 偵察 (他の人が植え込みを実行)推測。ラボのGammaは既に権限付与済みだったため自己実行
古いSQLを使用していたダッシュボードを破壊物理テーブルのsqlを攻撃者のSELECTで置換可用性推測
ネガティブ: SQL Lab実行POST /api/v1/sqllab/execute/n/aラボ実証。403
ネガティブ: Dataset REST上書きsql を付けた PUT /api/v1/dataset/{id}n/aラボ実証。403; sqlは空のまま (CVE-2026-23982の類似)
ネガティブ: metadata.yaml を含むv1 ZIP同じインポートエンドポイント、ZIPバンドルn/aラボ実証。200; sqlは空のまま (CVE-2024-26016クラス)

この残存箇所について確定した事項: 未認証インポート; 新しいDatabase URIの登録 (v0データセットインポートは接続を作成しない; 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のインポート認可はCVE-2024-26016。バージョンなしのv0は「ファイルがバージョン管理されていない」ため、依然として command_versions の最後に位置する。

Dashboard上の import_ はwriteにマップされる。非ZIP JSONは {filename: bytes} で metadata.yaml を含まない。ディスパッチャは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 を参照。ループバックラボ専用。無保証。

ツールをダウンロード