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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mysql-install-component-scheme — MySQL Community Server 26.7.0 - High - INSTALL COMPONENT 修飾スキーム - plugin_dir スキップ | Kitploit
ツール/GitHubGitHub/abraxas/mysql-install-component-scheme
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストリモートアクセスツールデータベースセキュリティラボと実践
GitHubabraxas/mysql-install-component-scheme

mysql-install-component-scheme

MySQL Community Server 26.7.0 - High - INSTALL COMPONENT 修飾スキーム - plugin_dir スキップ

リポジトリを見る
11188日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

Abraxas Labs - mysql-install-component-scheme

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-install-component-scheme

解説記事: https://abraxaslabs.tech/research/mysql-install-component-scheme

mysql-install-component-scheme

分類: RCE 到達範囲: リモート

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

デフォルトの file:// INSTALL COMPONENT は mysql_server_path_filter でラップされ、plugin_dir 配下に強制される。フィルタされていない libminchassis ローダーは dynamic_loader_scheme_file.mysql_minimal_chassis として登録されたまま残る。URN スキーム file.mysql_minimal_chassis はその実装を取得し、mysqld の UID で絶対パスを dlopen する。INSTALL PLUGIN / CREATE FUNCTION SONAME は依然として / を拒否する。mysql.component への INSERT 権限が必要 (PR:H)。

ラボでは、標準の component_query_attributes.so を /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so にコピーする。カスタムコンポーネントは使用しない。

項目値
IDCVE 未割当
分類RCE (mysqld としてコンポーネントを dlopen; PR:H; ラボでは標準の .so をロード)
到達範囲リモート (認証済み SQL; INSTALL COMPONENT / PR:H)
CWECWE-427
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
製品MySQL Community Server mysqld
影響を受けるバージョン26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
認証INSTALL COMPONENT (mysql.component への INSERT)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ。未使用の標準コンポーネントを plugin_dir 外にコピー。

攻撃者ができること

INSTALL COMPONENT 権限を保持する。コンポーネントの .so を plugin_dir 外に配置する (secure_file_priv 配下への FILE DUMPFILE、またはローカル書き込み)。INSTALL COMPONENT 'file.mysql_minimal_chassis:///abs/name' を実行する (.so サフィックスは不要。ローダーが付加する)。mysqld の UID で dlopen される。同じ URN は mysql.component に永続化され、再起動時に再ロードされる。

file:///abs/name は拒否される (3529)。INSTALL PLUGIN ... SONAME '/abs/...' は拒否される (1124)。修飾されたスキームが残された抜け道である。

発見の経緯

同じ 26.7.0 の調査。set_default("dynamic_loader_scheme_file.mysql_server_path_filter") が文書化された境界である。フィルタされていない実装は、ラッパーがそれを呼び出せるように登録されたまま残る。get_scheme_service_from_urn は :// より前のバイト列をスキームとして受け取る。

my_service<SERVICE_TYPE(dynamic_loader_scheme)> service(
    (my_string("dynamic_loader_scheme_") + scheme).c_str(),
    &imp_mysql_minimal_chassis_registry);

file.mysql_minimal_chassis は実際のスキームです。component.test はそれを試行しません。

誤った方向性: 3スラッシュの URN (scheme:///tmp/...) はロードされましたが、4スラッシュは不要でした。URN のステムは .so を省略する必要があります。

ラボ

cd lab
./run.sh

イメージ mysql:26.7.0。公開先 127.0.0.1:18650。plugin_dir=/usr/lib64/mysql/plugin。標準の component_query_attributes.so を /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so にコピーします。

SUCCESS mysql-install-component-scheme file-slash-denied=yes qualified-load=yes component-urn=yes dump=26.7.0 image=mysql:26.7.0 MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS

修正

SQL URN から dynamic_loader_scheme_file.mysql_minimal_chassis を取得しないでください。file のみをパスフィルタ実装にマッピングします。実装を指定するスキームは拒否してください。すべてのファイルローダーで check_valid_path を維持してください。

参考資料

  • github.com/mysql/mysql-server タグ mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • components/libminchassis/dynamic_loader.cc get_scheme_service_from_urn
  • sql/server_component/dynamic_loader_path_filter.cc
  • 関連パック: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
ツールをダウンロード